156 Commits
1.1.0 ... 1.3.0

Author SHA1 Message Date
6a937ebb8c [RELEASE] create release 1.3.0 2016-08-31 23:55:01 +02:00
da184c6767 [DEV] update esignal removing ISignal 2016-08-04 22:23:19 +02:00
4667e78aa6 [DEBUG] correct some un-understanding not parse file type like hxx 2016-07-24 14:42:50 +02:00
c7de44171d [DEBUG] remove a error warning (bad patch but it work) 2016-07-24 14:29:27 +02:00
8d22c48dc3 [DEBUG] correct all xml config language 2016-07-21 15:57:06 +02:00
8094d7c5ab [DEBUG] correct the regex error in the super size regex pattern (.|\n|\r)*? ==> bad patern 2016-07-21 15:29:56 +02:00
64b9f31a53 [DEV] update new ememory::SharedPtr 2016-07-19 22:03:39 +02:00
c284ad0b3a [DEV] clean header file 2016-05-02 22:01:55 +02:00
8eb7fe9839 [DEV] remove __class__ 2016-05-02 21:29:34 +02:00
0b84458985 [DEV] update the change on 'enum' to 'enum class' 2016-04-29 23:16:07 +02:00
c0de59ac9a [DEV] update las t ejson 2016-04-29 21:47:54 +02:00
dbc6b3439d [DEV] update new ejson interface 2016-04-20 21:19:11 +02:00
c7efaf95ab [DEV] corrrect internal bug link with exml portage 2016-04-19 22:05:42 +02:00
ac0ab974f6 [DEV] Update with the new exml API 2016-04-18 21:01:17 +02:00
1a2f0b6d91 [DEV] update etk::FSNode 2016-04-08 22:10:37 +02:00
235847a1c6 [DEV] not-in-doc ==> not_in_doc and add parsing in c++ 2016-04-01 21:30:23 +02:00
948e672eb1 [DEV] try to find reg-ex bug 2016-03-20 22:46:45 +01:00
bc7ed8f729 [DEV] remove dependency of date 2016-03-17 22:52:51 +01:00
0d47ff22e2 [DEV] update new ewol 2016-03-16 23:09:36 +01:00
c251a419ad [DEBUG] correct the bug of close file and open again ar seg-fault when write 2016-03-15 22:33:06 +01:00
a265735cd1 [DEBUG] correct many bugs 2016-03-10 23:48:07 +01:00
1821f2927b [DEBUG] correct some super integration bug 2016-03-10 22:37:37 +01:00
badb11d80d [DEV] update new property interface 2016-03-02 09:32:23 +01:00
499dfcffe6 [DEV] update new e-property 2016-02-24 22:31:46 +01:00
3f5d2abc41 [DEV] update new esignal (not build) 2016-02-19 23:33:00 +01:00
3e3c47cfa9 [DEV] update new ewol interface 2016-02-15 22:04:10 +01:00
c0705be42c [DEV] add personnal parameter 2016-02-12 23:50:20 +01:00
9f96beced2 [DEV] update to the hide implementation of esignal implementation 2016-02-11 22:39:40 +01:00
aed62ff58b [DEV] update externalisation of signal and property 2016-02-11 21:45:21 +01:00
2d4aac44fb [DEV] change build position 2016-01-15 21:18:24 +01:00
d3d4650d62 [DEV] correct the regex parsing error in the second highlight pass 2016-01-15 00:01:58 +01:00
c9b86afea0 [DEBUG] set correct name of buffer 2015-10-21 22:12:01 +02:00
d1f0caf386 [DEBUG] set back the close buffer 2015-10-21 22:12:01 +02:00
6980c78684 [DEV] update Doc 2015-10-15 08:36:21 +02:00
b5ef639438 [DEV] update new lutin 0.8.0 2015-10-14 21:21:03 +02:00
590e84e486 [DEV] change package in library ==> change idea of a package 2015-09-11 22:26:32 +02:00
cca05c01c0 [DEV] update new lutin 2015-09-10 21:32:50 +02:00
dbac89199f [DEV] correct application interface (update) 2015-09-07 22:15:33 +02:00
52ee889ee5 [DEV] update error of parsing c++ 2015-08-28 22:39:32 +02:00
893213c6c9 Update README.md 2015-08-26 14:04:42 +02:00
b5ff73e030 [DEV] add gcov parsing 2015-08-25 21:21:41 +02:00
82836ac045 [CI] update travis with new interface (no sudo) 2015-08-24 23:55:27 +02:00
0db5f0c528 [DEV] better parsing python, php and cpp 2015-08-24 22:03:07 +02:00
f6c4f4f9b3 [DEV] better parsing python, php and cpp 2015-08-24 22:03:07 +02:00
2028030df6 [DEV] better parsing python, php and cpp 2015-08-24 22:03:07 +02:00
c6269cbfd6 [DEV] update language xml and php 2015-08-22 10:15:58 +02:00
d2a7464341 [DEV] typo error 2015-08-21 23:56:17 +02:00
1fcf8b8a74 [DEV] update at the new low level gale interface 2015-08-11 23:21:41 +02:00
ad32734537 [DEV] update the parsing of java an python 2015-07-01 21:40:47 +02:00
89afc13dce [CI] pip for lutin error binary name 2015-05-21 22:30:58 +02:00
32b0b76fb9 [DEV] update search access and unaccess 2015-05-21 21:21:01 +02:00
4e527931c7 [CI] travis update for lutin pip & ewol repo interface 2015-05-20 21:13:48 +02:00
e0bf7c77c2 [DEV] help command line 2015-05-12 21:16:32 +02:00
2a467a7a5d [BUILD] update new lutin 0.5.3 2015-05-08 22:47:23 +02:00
386f5ed011 [CI] update travis build 2015-04-22 21:29:53 +02:00
1359193a63 [DEV] update to etk buffer remove 2015-04-06 21:06:01 +02:00
192bd045fa [DEV] update new exml interface 2015-01-14 21:10:23 +01:00
0f64bad930 [DEV] update new ejson interface 2015-01-12 23:20:23 +01:00
d2e9ab8b1a [DEV] add split of view ==> integration not ended, but it work 2014-11-14 23:57:29 +01:00
e17c9f9cf7 [API] update new Parameter API 2014-10-29 22:54:43 +01:00
7340844d12 [API] update new signal interface 2014-10-29 21:16:56 +01:00
bd9e5f03f4 [DEV] feature hide buffer list when number of buffer <= 1 2014-10-27 21:24:48 +01:00
2330788ace [VALGRING] error in some system access 2014-10-23 23:52:19 +02:00
e3dc686ec9 [DEBUG] C syntax error display in c++ 2014-10-21 23:19:02 +02:00
3f4a71065d [DEV] separate c++ & C and add filename in title 2014-10-21 21:18:50 +02:00
cefe0aacdb [INTEGRATION] update travis compilation 2014-10-17 22:12:43 +02:00
3c79dec2c8 [INTEGRATION] add color in travis build 2014-10-17 09:02:57 +02:00
7f7b3283e3 [DEV] add update of clang to set it work with timer 2014-10-17 09:00:46 +02:00
7c37d8e549 [DEV] add sub parsing of pass1 2014-10-13 22:39:49 +02:00
a201439665 [DEV] Update the parsing of many languages (pyton, cmake) is now good 2014-10-09 21:23:19 +02:00
67a08dd775 [DEBUG] correction of end of file regexp change 2014-10-08 21:32:41 +02:00
7952872980 [DEV] better regex ==> need to update alge to recognise data 2014-10-07 21:42:07 +02:00
78887e64ed [DEV] correction of the regex and add some basic test example 2014-10-07 00:45:01 +02:00
d93844d6da [DEV] first std::regex really work in c++ 2014-10-06 23:22:14 +02:00
243d7e7494 [DEV] change in etk::RegExp in std::regex 2014-10-05 23:46:57 +02:00
154351e629 [ERROR] Abandonned version in std::u32string ==> unexistant regexp 2014-10-03 21:44:13 +02:00
febbaffdf4 [DEV] {remove etk regexp dependency} big rework in progress to simplify code and use real std::regex templates 2014-10-03 00:49:26 +02:00
b890f931ca [DEV] remove problematic function parsing 2014-10-02 22:40:40 +02:00
2c3a64933d [DEV] transform plugin manager in unique resource 2014-09-18 22:27:54 +02:00
b8962cc3b9 [DEV] set travis depend on dev branch of ewol 2014-09-18 21:32:25 +02:00
f9ff0b8899 [DEBUG] remove lutinBase.py that is deprecated 2014-09-18 21:07:32 +02:00
f971c4fdfe [DEBUG]travis file error 2014-09-18 21:05:48 +02:00
6076698201 Create .travis.yml 2014-09-18 21:01:41 +02:00
c12ed9e7fa [DEBUG #9] freez correction ==> plugin data missing iterator 2014-09-18 21:01:41 +02:00
e29aa94cc5 [DEBUG #8] CLose the file after saving it when request close 2014-09-15 07:27:51 +02:00
05ac6a9210 [DEBUG #2 #7] close file and save it whan needed 2014-09-15 07:21:22 +02:00
0a054c209f [DEV] add parenting between bufferManager and Buffer 2014-09-12 22:10:32 +02:00
996fd58370 [DEBUG #1] Save file done 2014-09-12 21:52:03 +02:00
3574fd917c [DEBUG #5] correct file selection 2014-09-12 21:36:20 +02:00
b889b4aa5a [DEV] update plugin 2014-08-29 22:52:21 +02:00
668570cdc7 [DEV] start correct plugin interface 2014-08-28 22:31:00 +02:00
7e6f56a1cd [DEV] this plugin to the new ewol interface 2014-08-27 22:58:21 +02:00
a371c09e22 [DEV] update new signal system ==> run but not have many capabilities 2014-08-25 22:44:42 +02:00
cd3c5ff2d4 [DEV] update new object interface & rework global message (start) 2014-08-25 05:55:06 +02:00
686ec6d8bd [DEV] remove caller in signal emit 2014-08-22 05:21:10 +02:00
d31137e1a3 [DEBUG] gcc compilation warning 2014-08-21 21:00:13 +02:00
03fa46bbcd [DEV] rework signal interface (step 1 normalisation) 2014-08-20 22:34:31 +02:00
7da1beb12d [CLEAN] remove unneeded code 2014-08-19 21:47:33 +02:00
ddd21072b5 [DEV] plop 2014-08-17 23:30:37 +02:00
bf7899e045 [DEV] remove function onObjectRemove 2014-08-15 23:28:04 +02:00
3f0febce28 [DEV] change default Instance 2014-08-13 22:30:47 +02:00
5a924f7c9d [DEV] remove cyclic dependence on shared_ptr 2014-08-08 23:25:43 +02:00
39801fd265 [DEV] start dev with generic std::shared_ptr ==> basic work 2014-08-07 23:41:48 +02:00
ebdfd8be4c [DEV] update regexp of the languages 2014-08-01 23:44:34 +02:00
1d60917575 [DEBUG] correct C regExp 2014-07-30 23:24:26 +02:00
86d54590c0 [DEV] update new regexp system (not work correctly and only for C++) 2014-07-29 15:36:12 +02:00
b9a1c026fa [DEV] remove etk_min and etk_max & etk::Color<> interface 2014-07-03 21:03:26 +02:00
4942765ccf [DEV] add file chooser in shared mode 2014-06-30 22:36:36 +02:00
a425bdc17b [DEV] change manager interface in application 2014-06-30 22:36:36 +02:00
7d7d66d121 [DEV] change NULL ==> nullptr 2014-06-30 22:36:36 +02:00
55e05d24a3 [DEV] update new interface EWOL ewol::constext::Application 2014-06-30 22:36:36 +02:00
173e57342d [TAG] create 1.2-dev tag 2014-06-30 22:36:36 +02:00
09425067dc [DEV] remove to many request of focus 2014-06-03 22:19:00 +02:00
780234de13 [DEBUG] remove error in the HL update 2014-06-02 21:40:02 +02:00
c421bd5f90 [DEV] remove compilation warning 2014-06-02 21:04:35 +02:00
3ec3fa00d9 [DEV] work corectly with refcounting object (and remove some memory leek at close) 2014-05-27 21:43:02 +02:00
9b21e5c769 [DEV] correction some internal memory leek 2014-05-26 21:42:51 +02:00
2157099f0a [DEV] new staep to owner 2014-05-25 21:17:06 +02:00
d18b202e75 [DEV] init remove remove windows 2014-05-23 12:37:38 +02:00
63834fe960 [DEBUG] plugin are object ==> set it in shared pointer 2014-05-22 22:06:13 +02:00
cab0e6009d [DEV] update to the new API, system start but not compleately work 2014-05-20 23:26:14 +02:00
08261def10 [DEV] start rework on shared pointer 2014-05-20 21:35:41 +02:00
304ac2ba45 [DEV] start rework for dev interface of ewol 2014-05-19 22:30:39 +02:00
2d8c5d588d [STYLE] remove (void) in () to be c++ coherent 2014-05-15 21:37:39 +02:00
f1543f6199 [DEV] correction of the filename display and management 2014-05-13 21:48:20 +02:00
7acd5127eb [DEV] update ctags 2014-05-12 21:10:45 +02:00
0c6151283b [DEV] change log system 2014-04-30 22:18:00 +02:00
8854a5a34b [DEV] update readme for ios 2014-04-24 21:01:08 +02:00
958138ecbb [DEV] update to the single finger move 2014-04-18 22:22:02 +02:00
44bc1dd277 [DEV] remove df text test 2014-04-17 21:31:02 +02:00
0821335de6 [DEBUG] error writing 2014-04-16 22:21:20 +02:00
8d0fc9023f update ewol main 2014-04-07 07:59:00 +02:00
4f0839221d [DEV] remove deprecated config 2014-03-13 21:50:14 +01:00
17101a38b0 [DEV] cmake file update 2014-03-04 21:18:41 +01:00
def986ab82 [DEV] add cmake missing file 2014-02-24 22:01:10 +01:00
7ebc20e936 [DEV] add CMake instance 2014-02-24 21:50:50 +01:00
f807faf55a [DEBUG ewol#2] set button in toggle mode 2014-02-13 21:27:21 +01:00
bca2019789 Update version tag : 1.1.1 2014-02-12 21:05:58 +01:00
108afd2d30 [DEV] change scrool in scroll 2014-01-22 21:38:06 +01:00
a7907cd9b5 [DEV] unset distance field for textViewer 2014-01-20 21:16:41 +01:00
8830d47b51 [DEV] add some edf (distance field file) 2014-01-19 19:18:13 +01:00
599e49bcfd [DEV] add change of the GUi form 2014-01-18 14:34:33 +01:00
78c6baa02f [DEV] set a better theme manaement on ewol 2014-01-17 23:02:15 +01:00
46b95656bd [DEV] update at the new distance field 2014-01-15 01:15:27 +01:00
e2b365cffb [DEV] add MacOs icon 2014-01-05 23:07:23 +01:00
bcf318dbec [DEV] update the text viewer on the new scroll event 2014-01-04 20:21:54 +01:00
55e45c1b6b [DOC] add monk website 2013-12-28 16:10:22 +01:00
eef2bf64b9 [DEV] update new message API 2013-12-28 15:25:53 +01:00
db8f379e30 [DEV] update to the etk normalisation 2013-12-28 14:23:25 +01:00
2fc47723f0 [DEV] add monk doc generator 2013-12-23 22:52:33 +01:00
29f0656dfa [DEV] update lutin naming 2013-12-23 22:38:46 +01:00
3a95113f82 [DEBUG] Correction of some android errors 2013-12-20 00:43:31 +01:00
450732a27b [DOC] add doc generation site 2013-12-14 09:32:23 +01:00
90b766d2c7 [DEV] update on EWOL 0.8.1 2013-12-13 21:50:40 +01:00
edb2ab58f2 [DEBUG] correction of some highlight error 2013-12-05 22:16:04 +01:00
9ce727e481 [DEV] add documentation generation 2013-12-04 23:48:05 +01:00
159 changed files with 7941 additions and 4673 deletions

70
.travis.yml Normal file
View File

@@ -0,0 +1,70 @@
language:
- cpp
sudo: false
compiler:
- clang
- gcc
os:
- linux
- osx
branches:
only:
- master
- dev
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.9
install:
- echo "BUILDER = $BUILDER"
- echo "BOARD = $BOARD"
- echo "CONF = $CONF"
- pip install --user lutin
env:
matrix:
- CONF=debug BOARD=Linux
#- CONF=debug BOARD=Windows
#- CONF=debug BOARD=Android
- CONF=release BOARD=Linux
#- CONF=release BOARD=Windows
#- CONF=release BOARD=Android
exclude:
- compiler: clang
env: BOARD=Windows
- compiler: clang
env: BOARD=Android
before_script:
- cd ..
- mkdir bin
- curl https://storage.googleapis.com/git-repo-downloads/repo > bin/repo
- chmod a+x bin/repo
- git config --global user.email "travis@travis.com"
- git config --global user.name "Travis"
- git config --global color.ui "auto"
- git config --global core.editor "vi"
- mkdir framework
- cd framework
- ../bin/repo init -u https://github.com/HeeroYui/manifest.git
- ../bin/repo sync -j8
- cd ..
- pwd
- ls -l
- if [ "$CXX" == "clang++" ]; then BUILDER=clang; else BUILDER=gcc; fi
- if [ "$CXX" == "g++" ]; then COMPILATOR_OPTION="--compilator-version=4.9"; else COMPILATOR_OPTION=""; fi
script:
- lutin -C -P -t $BOARD -c $BUILDER $COMPILATOR_OPTION -m $CONF -p edn
notifications:
email:
- yui.heero@gmail.com

4
CMakeLists.txt Normal file
View File

@@ -0,0 +1,4 @@
cmake_minimum_required(VERSION 2.8)
SUBDIRS(${CMAKE_CURRENT_SOURCE_DIR}/../ewol)
SUBDIRS(sources)

View File

@@ -5,58 +5,83 @@ Edn
This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.
[![Build Status](https://travis-ci.org/HeeroYui/edn.svg?branch=dev)](https://travis-ci.org/HeeroYui/edn)
Instructions
============
download the software :
need google repo:
-----------------
mkdir yourDevFolder
cd yourDevFolder
git clone git://github.com/HeeroYui/ewol.git
cd ewol
git submodule init
git submodule update
cd ..
git clone git://github.com/HeeroYui/edn.git
cd edn
see: http://source.android.com/source/downloading.html#installing-repo
mkdir ~/.bin
PATH=~/.bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+x ~/.bin/repo
download Build system:
----------------------
sudo pip install lutin
sudo pip install pillow
download the Framework:
----------------------
mkdir -p WORKING_DIRECTORY/framework
cd WORKING_DIRECTORY/framework
repo init -u git://github.com/atria-soft/manifest.git
repo sync -j8
cd ../..
download the software:
----------------------
mkdir -p WORKING_DIRECTORY/application
cd WORKING_DIRECTORY/application
git clone https://github.com/HeeroYui/edn.git
cd ../..
Compile software:
-----------------
cd WORKING_DIRECTORY
lutin -C -P edn
(debug) Compile software & Run debug version:
../ewol/build/lutin.py --color --mode=debug
or
../ewol/build/lutin.py --color --compilator=clang --mode=debug
./out/Linux/debug/staging/edn//usr/bin/edn -l6 yourFile.txt
Note : -l6 corespond at the LOG level to display.
lutin -C -P -m debug edn
# or
lutin -C -P -c clang -m debug edn
(release) Compile software & install & run:
# generate binary, tree, package and install it ...
../ewol/build/lutin.py -c edn-install
edn exemple.txt
lutin -C -P edn?install
(Android) Compile software & install
cd yourDevFolder
mkdir andoid
cd android
download here in "sdk" and "ndk" the coresponding SDK and NDK of Android:
http://developer.android.com/tools/sdk/ndk/index.html
http://developer.android.com/sdk/index.html
==> you need to download sub package of the NDK (refer to the NDK doccumentation) but only supported android version >4.0
cd ../edn
# generate .so
../ewol/build/lutin.py --color --target=Android --mode=debug edn-install
cd ..
# Generate package and install on Android device (in debug mode a generic key is set)
lutin -C -P -t Android -m debug edn?install
# to show the log :
../ewol/build/lutin.py --target=Android edn-log
lutin -C -P -t Android edn?log
(Windows) Compile software & install
cd yourDevFolder/edn
../ewol/build/lutin.py --color --target=Windows --mode=debug
lutin -C -P -t Windows -m debug edn
(MAC) All needed and some useful packages
@@ -65,15 +90,25 @@ download the software :
- Xcode ==> for all developement packages
- in Xcode : XCode->Setting->Download and install component: "Command Line Tools"
cd yourDevFolder/edn
../ewol/build/lutin.py --color --mode=debug
lutin -C -P -m debug edn
On linux you can generate 3 board in one time
=============================================
(IOs) All needed and some useful packages
cd yourDevFolder/edn
../ewol/build/lutin.py --color --target=Linux --mode=debug edn --target=Windows --mode=debug edn --target=Android --mode=debug edn
- Git access (client you want or : http://code.google.com/p/git-osx-installer/ ==>need a ctrl+click to remove the normal installation control)
- Xcode ==> for all developement packages
- in Xcode : XCode->Setting->Download and install component: "Command Line Tools"
for porting on IOs you need a developper account
# compile and install on simulator (no developper account needed)
lutin -C -P -t IOs -m debug --simulation edn?install
# launch IOs simulator in xcode, and your application will appear on the second page (32 bit mode only)
# compile and install on board
lutin -C -P -t IOs -m debug edn?install
# compile and install on board and debug mode :
lutin -C -P -t IOs -m debug --simulation edn?log
Dependency packages
===================

View File

@@ -1,68 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux Kernel Configuration
#
#
# Modules
#
# CONFIG_BUILD_AGG is not set
# CONFIG_BUILD_LINEARMATH is not set
# CONFIG_BUILD_BULLET is not set
# CONFIG_BUILD_ETK is not set
# CONFIG_BUILD_FREETYPE is not set
# CONFIG_BUILD_LUA is not set
# CONFIG_BUILD_OGG is not set
# CONFIG_BUILD_PARSERSVG is not set
# CONFIG_BUILD_LIBPNG is not set
# CONFIG_BUILD_TINYXML is not set
# CONFIG_BUILD_ZLIB is not set
# CONFIG_BUILD_LIBZIP is not set
# CONFIG_BUILD_EWOL is not set
CONFIG_BUILD_EDN=y
#
# ewol
#
#
# General
#
CONFIG___EWOL_APPL_BASIC_TITLE__="Edn : Sources Code Editor"
CONFIG___EWOL_INTEGRATED_FONT__=y
#
# Android
#
CONFIG___EWOL_ANDROID_MINIMUM_SDK_VERSION__=9
# CONFIG___EWOL_ANDROID_SHOW_TITLE__ is not set
CONFIG___EWOL_ANDROID_ORIENTATION_AUTO__=y
# CONFIG___EWOL_ANDROID_ORIENTATION_LANDSCAPE__ is not set
# CONFIG___EWOL_ANDROID_ORIENTATION_PORTRAIT__ is not set
#
# Permissions
#
CONFIG___ANDROID_PERMISSION__WRITE_EXTERNAL_STORAGE__=y
# CONFIG___ANDROID_PERMISSION__CAMERA__ is not set
# CONFIG___ANDROID_PERMISSION__INTERNET__ is not set
# CONFIG___ANDROID_PERMISSION__MODIFY_AUDIO_SETTINGS__ is not set
# CONFIG___ANDROID_PERMISSION__READ_CALENDAR__ is not set
# CONFIG___ANDROID_PERMISSION__READ_CONTACTS__ is not set
# CONFIG___ANDROID_PERMISSION__READ_FRAME_BUFFER__ is not set
# CONFIG___ANDROID_PERMISSION__READ_PROFILE__ is not set
# CONFIG___ANDROID_PERMISSION__RECORD_AUDIO__ is not set
# CONFIG___ANDROID_PERMISSION__SET_ORIENTATION__ is not set
# CONFIG___ANDROID_PERMISSION__VIBRATE__ is not set
# CONFIG___ANDROID_PERMISSION__ACCESS_COARSE_LOCATION__ is not set
# CONFIG___ANDROID_PERMISSION__ACCESS_FINE_LOCATION__ is not set
#
# edn
#
#
# General
#
CONFIG_APPL_BUFFER_FONT_NORMAL=y
# CONFIG_APPL_BUFFER_FONT_DISTANCE_FIELD is not set

View File

@@ -1,49 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux Kernel Configuration
#
#
# Modules
#
# CONFIG_BUILD_AGG is not set
# CONFIG_BUILD_LINEARMATH is not set
# CONFIG_BUILD_BULLET is not set
# CONFIG_BUILD_ETK is not set
# CONFIG_BUILD_FREETYPE is not set
# CONFIG_BUILD_LUA is not set
# CONFIG_BUILD_OGG is not set
# CONFIG_BUILD_PARSERSVG is not set
# CONFIG_BUILD_LIBPNG is not set
# CONFIG_BUILD_PORTAUDIO is not set
# CONFIG_BUILD_TINYXML is not set
# CONFIG_BUILD_ZLIB is not set
# CONFIG_BUILD_LIBZIP is not set
# CONFIG_BUILD_EWOL is not set
CONFIG_BUILD_EDN=y
#
# ewol
#
#
# General
#
CONFIG___EWOL_APPL_BASIC_TITLE__="Edn : Sources Code Editor"
# CONFIG___EWOL_INTEGRATED_FONT__ is not set
#
# Linux
#
CONFIG___EWOL_LINUX_GUI_MODE_X11__=y
# CONFIG___EWOL_LINUX_GUI_MODE_DIRECT_FB__ is not set
#
# edn
#
#
# General
#
CONFIG_APPL_BUFFER_FONT_NORMAL=y
# CONFIG_APPL_BUFFER_FONT_DISTANCE_FIELD is not set

View File

@@ -1,48 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux Kernel Configuration
#
#
# Modules
#
# CONFIG_BUILD_AGG is not set
# CONFIG_BUILD_LINEARMATH is not set
# CONFIG_BUILD_BULLET is not set
# CONFIG_BUILD_ETK is not set
# CONFIG_BUILD_FREETYPE is not set
# CONFIG_BUILD_LUA is not set
# CONFIG_BUILD_OGG is not set
# CONFIG_BUILD_PARSERSVG is not set
# CONFIG_BUILD_LIBPNG is not set
# CONFIG_BUILD_TINYXML is not set
# CONFIG_BUILD_ZLIB is not set
# CONFIG_BUILD_LIBZIP is not set
# CONFIG_BUILD_EWOL is not set
CONFIG_BUILD_EDN=y
#
# ewol
#
#
# General
#
CONFIG___EWOL_APPL_BASIC_TITLE__="Edn : Sources Code Editor"
CONFIG___EWOL_INTEGRATED_FONT__=y
#
# Linux
#
CONFIG___EWOL_LINUX_GUI_MODE_X11__=y
# CONFIG___EWOL_LINUX_GUI_MODE_DIRECT_FB__ is not set
#
# edn
#
#
# General
#
CONFIG_APPL_BUFFER_FONT_NORMAL=y
# CONFIG_APPL_BUFFER_FONT_DISTANCE_FIELD is not set

View File

@@ -1,43 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux Kernel Configuration
#
#
# Modules
#
# CONFIG_BUILD_AGG is not set
# CONFIG_BUILD_LINEARMATH is not set
# CONFIG_BUILD_BULLET is not set
# CONFIG_BUILD_ETK is not set
# CONFIG_BUILD_FREETYPE is not set
# CONFIG_BUILD_GLEW is not set
# CONFIG_BUILD_LUA is not set
# CONFIG_BUILD_OGG is not set
# CONFIG_BUILD_PARSERSVG is not set
# CONFIG_BUILD_LIBPNG is not set
# CONFIG_BUILD_TINYXML is not set
# CONFIG_BUILD_ZLIB is not set
# CONFIG_BUILD_LIBZIP is not set
# CONFIG_BUILD_EWOL is not set
CONFIG_BUILD_EDN=y
#
# ewol
#
#
# General
#
CONFIG___EWOL_APPL_BASIC_TITLE__="Ewol Basic Title"
CONFIG___EWOL_INTEGRATED_FONT__=y
#
# edn
#
#
# General
#
CONFIG_APPL_BUFFER_FONT_NORMAL=y
# CONFIG_APPL_BUFFER_FONT_DISTANCE_FIELD is not set

View File

@@ -1,28 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<composer>
<composer expand="true,false" fill="true,false">
<sizer mode="hori" expand="true,false" fill="true" lock="true">
<button name="SEARCH:close">
<image src="THEME:GUI:Remove.svg" fill="true" size="7,7mm"/>
<image src="THEME:GUI:Remove.edf" fill="true" size="7,7mm" distance-field="true"/>
</button>
<entry name="SEARCH:search-entry" expand="true" fill="true"/>
<button name="SEARCH:search">
<image src="THEME:GUI:Search.svg" fill="true" size="7,7mm"/>
<image src="THEME:GUI:Search.edf" fill="true" size="7,7mm" distance-field="true"/>
</button>
<entry name="SEARCH:replace-entry" expand="true" fill="true"/>
<button name="SEARCH:replace">
<image src="THEME:GUI:Replace.svg" fill="true" size="7,7mm"/>
<image src="THEME:GUI:Replace.edf" fill="true" size="7,7mm" distance-field="true"/>
</button>
<button name="SEARCH:case">
<image src="THEME:GUI:CaseSensitive.svg" fill="true" size="7,7mm" hover="Close search bar"/>
<image src="THEME:GUI:CaseSensitive.svg" fill="true" size="7,7mm" hover="Close search bar"/>
<button name="SEARCH:case" toggle="true">
<image src="THEME:GUI:CaseSensitive.edf" fill="true" size="7,7mm" hover="_T(Close search bar)" distance-field="true"/>
<image src="THEME:GUI:CaseSensitive.edf" fill="true" size="7,7mm" hover="_T(Close search bar)" distance-field="true"/>
</button>
<button name="SEARCH:wrap">
<image src="THEME:GUI:WrapAround.svg" fill="true" size="7,7mm" hover="Close search bar"/>
<image src="THEME:GUI:WrapAround.svg" fill="true" size="7,7mm" hover="Close search bar"/>
<button name="SEARCH:wrap" toggle="true">
<image src="THEME:GUI:WrapAround.edf" fill="true" size="7,7mm" hover="_T(Close search bar)" distance-field="true"/>
<image src="THEME:GUI:WrapAround.edf" fill="true" size="7,7mm" hover="_T(Close search bar)" distance-field="true"/>
</button>
<button name="SEARCH:up-down">
<image src="THEME:GUI:Up.svg" fill="true" size="7,7mm" hover="Close search bar"/>
<image src="THEME:GUI:Down.svg" fill="true" size="7,7mm" hover="Close search bar"/>
<button name="SEARCH:up-down" toggle="true">
<image src="THEME:GUI:Up.edf" fill="true" size="7,7mm" hover="_T(Close search bar)" distance-field="true"/>
<image src="THEME:GUI:Down.edf" fill="true" size="7,7mm" hover="_T(Close search bar)" distance-field="true"/>
</button>
</sizer>
</composer>

View File

@@ -1,14 +1,27 @@
[Desktop Entry]
Version=0.3.0
Name=Edn : Editeur de N'ours
Exec=edn
Icon=Edn
Exec=edn %U
Icon=/usr/share/edn/icon.png
Terminal=false
Type=Application
Categories=Development;Utility;TextEditor;
Categories=Development;
GenericName=Text editor
GenericName[en]=Text editor
GenericName[nl]=Tekst verwerker
GenericName[fr]=éditeur de text
GenericName[fr]=Éditeur de text
Comment=Code editor for c, c++, php, bash, xml ...
Comment[fr]=éditeur de text pour les language c, c++, php, bash, xml ...
OnlyShowIn=GNOME;Unity;
MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Actions=New;
[Desktop Action New]
Name=Open a New Window
Name[fr]=Ouvrir une nouvelle fenêtre
Name[nl]=Nieuw venster openen
Name[en]=Open a New Window
Exec=edn
#desktop-file-validate edn.desktop
#sudo cp xxx /usr/share/applications/

BIN
data/icon.icns Normal file

Binary file not shown.

0
data/lang/EN.json Normal file
View File

0
data/lang/FR.json Normal file
View File

View File

@@ -1,57 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Assembleur">
<ext>*.s</ext>
<ext>*.S</ext>
<ext>*.asm</ext>
<ext>.*\.(s|S|asm|ASM)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="my comment multiline doxygen">
<color>commentDoxygen</color>
<start>/\*\*</start>
<end>\*/</end>
<regex>
<start>/\*(\*|!)</start>
<stop>\*/</stop>
</regex>
</rule>
<rule name="my comment multiline">
<color>comment</color>
<start>/\*</start>
<end>\*/</end>
<regex>
<start>/\*</start>
<stop>\*/</stop>
</regex>
</rule>
<rule name="my if 0">
<color>preprocesseur</color>
<start>#[ \t]*if 0</start>
<end>#endif|#else</end>
<EscapeChar>\</EscapeChar>
<regex>
<start>#[ \t]*if 0</start>
<stop>#(endif|else)</stop>
</regex>
</rule>
<rule name="my preprocesseur">
<color>preprocesseur</color>
<start>#</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>#.*?$</regex>
</rule>
<rule name="my comment doxygen">
<color>commentDoxygen</color>
<start>//!</start>
<end>\n</end>
<regex>//!.*?$</regex>
</rule>
<rule name="my todo comment">
<color>SYNTAX_ERROR</color>
<start>//[ \t]*TODO[ \t]*:</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>//[ \t]*TODO[ \t]*:.*?$</regex>
</rule>
<rule name="my comment">
<color>comment</color>
<start>(//|@)</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>//.*?$</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\@smull|ldrsh|smlal|stmdb|mul|mla|umull|ldr|add|str|mov|subs|bgt|ldmia|stmia|ldmfd|cmp|sub|strd|stmfd|bne|bhi|ldrd|mvn\@</start>
<regex>\b(smull|ldrsh|smlal|stmdb|mul|mla|umull|ldr|add|str|mov|subs|bgt|ldmia|stmia|ldmfd|cmp|sub|strd|stmfd|bne|bhi|ldrd|mvn)\b</regex>
</rule>
<rule name="register list">
<color>type</color>
<start>\@r(10|11|12|[0-9]?)|sp|lp|lr|pc\@</start>
<regex>\b(r(10|11|12|[0-9]?)|sp|lp|lr|pc)\b</regex>
</rule>
</pass2>
</EdnLang>

View File

@@ -1,48 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Bash script">
<ext>*.sh</ext>
<ext>.*\.sh</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="first line">
<color>commentDoxygen</color>
<start>#!</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>#!(.|\\[\\\n])*?$</regex>
</rule>
<rule name="comment line">
<color>comment</color>
<start>#</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>#(.|\\[\\\n])*?$</regex>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<regex>&quot;(.|\\[\\&quot;])*?&quot;</regex>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<start>'</start>
<end>'</end>
<!--<EscapeChar>\</EscapeChar>-->
<regex>&apos;(.|\\[\\&apos;])*?&apos;</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\@for|done|do|while|in|if|elif|then|else|fi\@</start>
<regex>\b(for|done|do|while|in|if|elif|then|else|fi)\b</regex>
</rule>
<rule name="my Variable">
<color>keyword</color>
<start>[\$]+[a-zA-Z_][a-zA-Z0-9_]*</start>
<regex>[\$]+[a-zA-Z_][a-zA-Z0-9_]*</regex>
</rule>
<rule name="Function name">
<color>functionName</color>
<start>function (\w|_)+[ \t]*\(</start>
<regex>function (\w|_)+[ \t]*\(</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<start>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}|</start>
<regex>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}</regex>
</rule>
</pass2>
</EdnLang>

View File

@@ -1,60 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Boulou log">
<ext>*.boo</ext>
<ext>.*\.(boo|BOO)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="comment ##">
<color>SYNTAX_ERROR</color>
<start>##</start>
<end>\n</end>
<regex>##.*?$</regex>
</rule>
<rule name="comment #">
<color>comment</color>
<start>#</start>
<end>\n</end>
<regex>#.*?$</regex>
</rule>
<rule name="notes ... ">
<color>preprocesseur</color>
<start>(NOTE|TODO) : </start>
<end>\n</end>
<regex>(NOTE|TODO) : .*?$</regex>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<regex>&quot;(.|\\[\\&quot;])*?$</regex>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<start>\@'</start>
<end>'</end>
<!--<EscapeChar>\</EscapeChar>-->
<regex>\b&apos;(.|\\[\\&apos;])*?$</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="pourcentage OK">
<color>TestResultOK</color>
<start>100%</start>
<regex>100%</regex>
</rule>
<rule name="pourcentage">
<color>number</color>
<start>[0-9]*%</start>
<regex>[0-9]*%</regex>
</rule>
<rule name="R<EFBFBD>sultat OK">
<rule name="Résultat OK">
<color>TestResultOK</color>
<start>\[( )*(OK|Ok|ok)( )*\]</start>
<regex>\[( )*(OK|Ok|ok)( )*\]</regex>
</rule>
<rule name="resultat en erreur">
<color>TestResultERROR</color>
<start>\[(ERREUR|Erreur|erreur)\]</start>
<regex>\[(ERREUR|Erreur|erreur)\]</regex>
</rule>
<rule name="resultat vide">
<color>number</color>
<start>\[( )*\]</start>
<regex>\[( )*\]</regex>
</rule>
<rule name="notes ... ">
<color>macro</color>
<start>==&gt;</start>
<regex>==&gt;</regex>
</rule>
</pass2>
</EdnLang>

View File

@@ -1,138 +1,134 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="C/C++">
<ext>*.c</ext>
<ext>*.cpp</ext>
<ext>*.cc</ext>
<ext>*.h</ext>
<ext>*.hpp</ext>
<ext>*.mm</ext>
<EdnLang version="0.1" lang="C">
<ext>.*\.(c|C|m|M)</ext>
<!--might be : <ext>.*\.(c|h|m)</ext>-->
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="my comment multiline doxygen">
<rule name="doxygen multiline">
<color>commentDoxygen</color>
<start>/\*\*</start>
<end>\*/</end>
<rule name="macro">
<color>macro</color>
<start>\@[A-Z_]{4,500}\@</start>
</rule>
<rule name="keyword">
<color>keyword</color>
<start>@\w*[ \t]*(\[(in|out| |,)*\])?[ \t]*([a-zA-Z0-9\-_]*)</start>
<underColor idPThese="1"></underColor><!-- (\[(in|out| |,)*\]) -->
<underColor idPThese="3"></underColor><!-- (([a-zA-Z0-9\-_])*) -->
</rule>
<regex>
<start>/\*(\*|!)</start>
<stop>\*/</stop>
</regex>
<sub>doxyparse</sub>
</rule>
<rule name="code Review">
<color>SYNTAX_ERROR</color>
<start>/\*[ \t]*TODO :</start>
<end>\*/</end>
</rule>
<rule name="my comment multiline">
<rule name="comment multiline">
<color>comment</color>
<start>/\*</start>
<end>\*/</end>
<regex>
<start>/\*</start>
<stop>\*/</stop>
</regex>
<sub>TODO</sub>
</rule>
<rule name="my if 0">
<rule name="comment multiline ERROR">
<color>SYNTAX_ERROR</color>
<regex>
<start>/\*</start>
</regex>
</rule>
<rule name="#if 0">
<color>preprocesseur</color>
<start>#[ \t]*if 0</start>
<end>#endif|#else</end>
<EscapeChar>\</EscapeChar>
<regex>
<start>#[ \t]*if 0</start>
<stop>#(endif|else)</stop>
</regex>
</rule>
<rule name="my preprocesseur">
<rule name="#if 0 ERROR">
<color>SYNTAX_ERROR</color>
<regex>
<start>#[ \t]*if 0</start>
</regex>
</rule>
<rule name="#preproc">
<color>preprocesseur</color>
<start>#</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>#(.|\\[\\\n])*</regex>
</rule>
<rule name="my comment doxygen">
<rule name="inline doxygen">
<color>commentDoxygen</color>
<start>//!</start>
<end>\n</end>
<regex>//!.*</regex>
<sub>doxyparse</sub>
</rule>
<rule name="my todo comment">
<color>SYNTAX_ERROR</color>
<start>//[ \t]*TODO[ \t]*:</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
</rule>
<rule name="my comment">
<rule name="inline comment">
<color>comment</color>
<start>//</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>//.*</regex>
<sub>TODO</sub>
</rule>
<rule name="doubleQuteText">
<rule name="double quote text">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<regex>&quot;(.|\\[\\&quot;])*?&quot;</regex> <!-- " -->
</rule>
<rule name="simpleQuteText">
<rule name="simple quote text">
<color>doubleQuoteText</color>
<start>'</start>
<end>'</end>
<!--<EscapeChar>\</EscapeChar>-->
<regex>&apos;\\?.&apos;</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\@return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof\@</start>
<regex>\b(return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof)\b</regex>
</rule>
<rule name="my function keyword">
<color>systemFunction</color>
<start>\@new|delete|try|catch|memset|fopen|fread|fwrite|fgets|fclose|printf|(f|s|diag_)printf|calloc|malloc|realloc|(cyg|sup)_([a-z]|[A-Z]|[0-9]|_)+\@</start>
<regex>\b(memset|fopen|fread|fwrite|fgets|fclose|printf|(f|s|diag_)printf|calloc|malloc|realloc)\b</regex>
</rule>
<rule name="my type">
<color>type</color>
<start>\@bool|BOOL|char(16_t|32_t)?|double|float|u?int(8|16|32|64|128)?(_t)?|long|short|signed|size_t|unsigned|void|(I|U)(8|16|32|64|128)\@</start>
</rule>
<rule name="std type">
<color>type</color>
<start>\@std::(vector|(u16|u32|w)?string|codecvt_utf(16|8_utf16|8)+|complex|iterator(_traits)?|tuple(_element|_size)?|pair)\@</start>
<regex>\b(bool|char(16_t|32_t)?|double|float|u?int(8|16|32|64|128)?(_t)?|long|short|signed|size_t|unsigned|void|(I|U)(8|16|32|64|128))\b</regex>
</rule>
<rule name="my storage keyword">
<color>storageKeyword</color>
<start>\@inline|const|class|virtual|private|public|protected|friend|const|extern|auto|register|static|unsigned|signed|volatile|char|double|float|int|long|short|void|typedef|struct|union|enum\@</start>
<regex>\b(inline|const|const|extern|register|static|unsigned|signed|volatile|char|double|float|int|long|short|void|typedef|struct|union|enum)\b</regex>
</rule>
<rule name="my common Define">
<color>commonDefine</color>
<start>\@NULL|MAX|MIN|__LINE__|__DATA__|__FILE__|__func__|__TIME__|__STDC__\@</start>
<regex>\b(NULL|MAX|MIN|__(LINE|DATA|FILE|func|TIME|STDC|PRETTY_FUNCTION|FUNCTION)__)\b</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<start>\@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@</start>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="my boolean">
<color>boolean</color>
<start>\@true|TRUE|false|FALSE\@</start>
<regex>\b(TRUE|FALSE)\b</regex>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<start>\@[A-Z_][A-Z_0-9]{3,500}\@</start>
</rule>
<rule name="CPP member">
<color>memberClass</color>
<start>\@m_[A-Za-z_0-9]*\@</start>
<regex>\b([A-Z_][A-Z_0-9]{3,500})\b</regex>
</rule>
<rule name="function input">
<color>inputFunction</color>
<start>\@_[A-Za-z_0-9]*\@</start>
<regex>\b_\w+\b</regex>
</rule>
<rule name="Function name">
<color>functionName</color>
<start>\@(\w|_)+[ \t]*\(</start>
<regex>\b((\w|_)+[ \t]*\()</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<start>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}|</start>
<regex>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}</regex>
</rule>
<!-- With all elementes :
<rule name="BIG LETTER">
<color>macro</color>
<start>([A-Z]|_){4,500}</start>
<elemSubColor id="1">doxElem</elemSubColor>
<rule name="simpleQuteTextError">
<color>SYNTAX_ERROR</color>
<regex>&apos;|&quot;</regex>
</rule>
-->
</pass2>
<pass name="doxyparse">
<rule name="key">
<color>doxygen-key</color>
<regex>(@|\\)[\t ]*\w+</regex>
</rule>
<rule name="in-out">
<color>doxygen-in-out</color>
<regex>\[(in|in,out|out)\]</regex>
</rule>
<rule name="function input">
<color>inputFunction</color>
<regex>\b_\w+\b</regex>
</rule>
</pass>
<pass name="TODO">
<rule name="function input">
<color>SYNTAX_ERROR</color>
<regex>TODO[ \t]*:.*</regex>
</rule>
</pass>
</EdnLang>

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="cmake">
<ext>CMakeLists.txt</ext>
<ext>CMakeCache.txt</ext>
<pass1>
<rule name="my comment doxygen">
<color>commentDoxygen</color>
<regex>##.*</regex>
</rule>
<rule name="my todo comment">
<color>SYNTAX_ERROR</color>
<regex>#[ \t]TODO[ \t]*:(.|\\[\\\n])*</regex>
</rule>
<rule name="my comment">
<color>comment</color>
<regex>#(.|\\[\\\n])*</regex>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<regex>&quot;(.|\\[\\&quot;])*?&quot;</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<regex>\b(foreach|message|endforeach|if|else|endif|list|file|string)\b</regex>
</rule>
<rule name="my function keyword">
<color>systemFunction</color>
<regex>\b(set|include_directories|add_definitions|add_library|include_directories|target_link_libraries|project|include|check_include_file|enable_testing|option|cmake_minimum_required|add_definitions|check_include_file|configure_file|include_directories|add_custom_command|add_executable|add_test|find_package|pkg_check_modules|set_target_properties|source_group)\b</regex>
</rule>
<rule name="Variable">
<color>inputFunction</color>
<regex>\$\{.*\}</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<regex>\b([A-Z_][A-Z_0-9]{3,500})\b</regex>
</rule>
<rule name="Function name">
<color>functionName</color>
<regex>\b(\w|_)+[ \t]*\(</regex>
</rule>
<rule name="files path">
<color>memberClass</color>
<regex>[\w-]*(\.|/)\w*</regex>
</rule>
</pass2>
</EdnLang>

View File

@@ -0,0 +1,149 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="C++">
<ext>.*\.(cpp|CPP|cxx|CXX|cc|CC|hpp|HPP|hxx|HXX|h|H|mm|MM|c++|C++|m++|M++|mpp|MPP)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="doxygen multiline">
<color>commentDoxygen</color>
<regex>
<start>/\*(\*|!)</start>
<stop>\*/</stop>
</regex>
<sub>doxyparse</sub>
</rule>
<rule name="comment multiline">
<color>comment</color>
<regex>
<start>/\*</start>
<stop>\*/</stop>
</regex>
<sub>TODO</sub>
</rule>
<rule name="comment multiline ERROR">
<color>SYNTAX_ERROR</color>
<regex>
<start>/\*</start>
</regex>
</rule>
<rule name="#if 0">
<color>preprocesseur</color>
<regex>
<start>#[ \t]*if 0</start>
<stop>#e(ndif|lse)</stop>
</regex>
</rule>
<rule name="#if 0 ERROR">
<color>SYNTAX_ERROR</color>
<regex>
<start>#[ \t]*if 0</start>
</regex>
</rule>
<rule name="#preproc">
<color>preprocesseur</color>
<regex>#(.|\\[\\\n])*</regex>
</rule>
<rule name="inline doxygen">
<color>commentDoxygen</color>
<regex>//!.*</regex>
<sub>doxyparse</sub>
</rule>
<rule name="inline comment">
<color>comment</color>
<regex>//.*</regex>
<sub>TODO</sub>
</rule>
<rule name="double quote text">
<color>doubleQuoteText</color>
<regex>(U|u|u8)?&quot;(.|\\[\\&quot;])*?&quot;</regex> <!-- " -->
</rule>
<rule name="simple quote text">
<color>doubleQuoteText</color>
<regex>&apos;\\?.&apos;</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="old school elements">
<color>SYNTAX_ERROR</color>
<regex>&apos;|&quot;|NULL|MAX|MIN|TRUE|FALSE|calloc|malloc|realloc|free|BOOL</regex>
</rule>
<rule name="my keyword">
<color>keyword</color>
<regex>\b(return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof)\b</regex>
</rule>
<rule name="my function keyword">
<color>systemFunction</color>
<regex>\b(new|delete|try|catch|memset|fopen|fread|fwrite|fgets|fclose|printf|(f|s|diag_)printf|(reinterpret|static|dynamic|const)_cast)\b</regex>
</rule>
<rule name="my type">
<color>type</color>
<regex>\b(bool|char(16_t|32_t)?|double|float|u?int(8|16|32|64|128)?(_t)?|long|short|signed|size_t|unsigned|void|(I|U)(8|16|32|64|128))\b</regex>
</rule>
<rule name="std type">
<color>type</color>
<regex>\b(std(11)?|boost)::[\w:]*</regex>
</rule>
<rule name="my storage keyword">
<color>storageKeyword</color>
<regex>\b(inline|const|class|namespace|virtual|private|public|protected|friend|const|extern|mutable|auto|register|static|unsigned|signed|volatile|char|double|float|int|long|short|void|typedef|struct|union|enum|override|final)\b</regex>
</rule>
<rule name="my common Define">
<color>commonDefine</color>
<regex>\b(nullptr|__(LINE|DATA|FILE|func|TIME|STDC|PRETTY_FUNCTION|FUNCTION)__)\b</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(LL|L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="my boolean">
<color>boolean</color>
<regex>\b(true|false)\b</regex>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<regex>\b([A-Z_][A-Z_0-9]{3,500})\b</regex>
</rule>
<rule name="CPP member">
<color>memberClass</color>
<regex>\b((m|s|p|s|g)_|property|signal)\w+\b</regex>
</rule>
<rule name="function input">
<color>inputFunction</color>
<regex>\b_\w+\b</regex>
</rule>
<rule name="Function name">
<color>functionName</color>
<regex>\b((\w|_)+[ \t]*\()</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<regex>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}</regex>
</rule>
<rule name="simpleQuteTextError">
<color>SYNTAX_ERROR</color>
<regex>&apos;|&quot;</regex>
</rule>
</pass2>
<pass name="doxyparse">
<rule name="knownkey">
<color>doxygen-key-known</color>
<regex>(@|\\)[\t ]*(addindex|addtogroup|anchor|arg|attention|author|authors|a|brief|bug|b|callgraph|category|cite|class|code|cond|copybrief|copydetails|copydoc|copyright|date|def|defgroup|deprecated|details|diafile|dir|docbookonly|dontinclude|dot|dotfile|else|elseif|em|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endif|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|endverbatim|enduml|endxmlonly|enum|example|exception|extends|e|file|fn|headerfile|hidecallergraph|hidecallgraph|hideinitializer|htmlinclude|htmlonly|idlexcept|ifnot|if|image|implements|includelineno|include|ingroup|internal|invariant|interface|latexinclude|latexonly|line|link|license|li|mainpage|manonly|memberof|msc|mscfile|name|namespace|nosubgrouping|note|n|overload|package|page|paragraph|param|parblock|par|post|pre|private|privatesection|property|protected|protectedsection|protocol|public|publicsection|pure|p|refitem|ref|related|relates|relatedalso|relatesalso|remark|remarks|result|return|returns|retval|rtfonly|sa|secreflist|section|see|short|showinitializer|since|skip|skipline|snippet|startuml|struct|subpage|subsection|subsubsection|tableofcontents|test|throw|throws|todo|tparam|typedef|union|until|var|verbatim|verbinclude|version|vhdlflow|warning|weakgroup|xmlonly|xrefitem)</regex>
</rule>
<rule name="key">
<color>doxygen-key</color>
<regex>(@|\\)[\t ]*\w+</regex>
</rule>
<rule name="in-out">
<color>doxygen-in-out</color>
<regex>\[(in|in,out|out)\]</regex>
</rule>
<rule name="function input">
<color>inputFunction</color>
<regex>\b_\w+\b</regex>
</rule>
</pass>
<pass name="TODO">
<rule name="function input">
<color>SYNTAX_ERROR</color>
<regex>TODO[ \t]*:.*</regex>
</rule>
</pass>
</EdnLang>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="gcov">
<ext>.*\.(gcov)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="Not parsed">
<color>normal</color>
<regex>( )+-\:.*</regex>
</rule>
<rule name="Not executed">
<color>SYNTAX_ERROR</color>
<regex>( )+(#)+\:.*</regex>
</rule>
<rule name="Not parsed">
<color>number</color>
<regex>( )+[0-9]+\:.*</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
</pass2>
</EdnLang>

View File

@@ -1,82 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Glsl">
<ext>*.glsl</ext>
<ext>*.vert</ext>
<ext>*.frag</ext>
<ext>*.prog</ext>
<ext>.*\.(glsl|vert|frag|prog)</ext>
<pass1>
<rule name="my comment multiline doxygen">
<color>commentDoxygen</color>
<start>/\*\*</start>
<end>\*/</end>
<regex>
<start>/\*(\*|!)</start>
<stop>\*/</stop>
</regex>
</rule>
<rule name="my comment multiline">
<color>comment</color>
<start>/\*</start>
<end>\*/</end>
<regex>
<start>/\*</start>
<stop>\*/</stop>
</regex>
</rule>
<rule name="my if 0">
<color>preprocesseur</color>
<start>#[ \t]*if 0</start>
<end>#endif|#else</end>
<EscapeChar>\</EscapeChar>
<regex>
<start>#[ \t]*if 0</start>
<stop>#(endif|else)</stop>
</regex>
</rule>
<rule name="my preprocesseur">
<color>preprocesseur</color>
<start>#</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>#(.|\\[\\\n])*$</regex>
</rule>
<rule name="my comment doxygen">
<color>commentDoxygen</color>
<start>//!</start>
<end>\n</end>
<regex>//!(.|\\[\\\n])*$</regex>
</rule>
<rule name="my todo comment">
<color>SYNTAX_ERROR</color>
<start>//[ \t]*TODO[ \t]*:</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>//[ \t]*TODO[ \t]*:(.|\\[\\\n])*$</regex>
</rule>
<rule name="my comment">
<color>comment</color>
<start>//</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>//(.|\\[\\\n])*$</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\@return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof\@</start>
<regex>\b(return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof)\b</regex>
</rule>
<rule name="my type">
<color>type</color>
<start>\@void|bool|float|int|(vec|mat|ivect|bvect)[2-4]\@</start>
<regex>\b(void|bool|float|int|(vec|mat|ivec|bvec)[2-4])\b</regex>
</rule>
<rule name="my storage keyword">
<color>storageKeyword</color>
<start>\@varying|uniform|attribute|precision|mediump\@</start>
<regex>\b(varying|uniform|attribute|precision|mediump)\b</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<start>\@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@</start>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="my boolean">
<color>boolean</color>
<start>\@true|false\@</start>
<regex>\b(true|false)\b</regex>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<start>\@[A-Z_][A-Z_0-9]{3,500}\@</start>
<regex>\b([A-Z_][A-Z_0-9]{3,500})\b</regex>
</rule>
<rule name="Function name">
<color>functionName</color>
<start>\@(\w|_)+[ \t]*\(</start>
<regex>\b(\w|_)+[ \t]*\(</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<start>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}|</start>
<regex>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}</regex>
</rule>
</pass2>
</EdnLang>

View File

@@ -1,46 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Kernel conf file">
<ext>*.in</ext>
<ext>.*\.in</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="my preprocesseur">
<color>preprocesseur</color>
<start>#</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>#(.|\\[\\\n])*?$</regex>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<regex>&quot;(.|\\[\\&quot;])*?$</regex>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<start>'</start>
<end>'</end>
<!--<EscapeChar>\</EscapeChar>-->
<regex>&apos;(.|\\[\\&apos;])*?$</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\@menu|endmenu|comment|if|endif|help|default|choice|endchoice|prompt|depends on|config\@</start>
<regex>\b(menu|endmenu|comment|if|endif|help|default|choice|endchoice|prompt|depends on|config)\b</regex>
</rule>
<rule name="my type">
<color>type</color>
<start>\@int|hex|bool|string\@</start>
<regex>\b(int|hex|bool|string)\b</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<start>\@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@</start>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<start>\@[A-Z_][A-Z_0-9]{3,500}\@</start>
<regex>\b([A-Z_][A-Z_0-9]{3,500})\b</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<start>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}|</start>
<regex>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}</regex>
</rule>
</pass2>
</EdnLang>

View File

@@ -1,87 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Java">
<ext>*.java</ext>
<ext>.*\.(java|JAVA)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="my comment multiline doxygen">
<rule name="doxygen multiline">
<color>commentDoxygen</color>
<start>/\*\*</start>
<end>\*/</end>
<regex>
<start>/\*(\*|!)</start>
<stop>\*/</stop>
</regex>
<sub>doxyparse</sub>
</rule>
<rule name="my comment multiline">
<rule name="comment multiline">
<color>comment</color>
<start>/\*</start>
<end>\*/</end>
<regex>
<start>/\*</start>
<stop>\*/</stop>
</regex>
<sub>TODO</sub>
</rule>
<rule name="my comment doxygen">
<color>commentDoxygen</color>
<start>//!</start>
<end>\n</end>
</rule>
<rule name="my todo comment">
<rule name="comment multiline ERROR">
<color>SYNTAX_ERROR</color>
<start>//[ \t]*TODO[ \t]*:</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>
<start>/\*(\*|!)</start>
</regex>
</rule>
<rule name="my comment">
<rule name="inline doxygen">
<color>commentDoxygen</color>
<regex>//!.*$</regex>
<sub>doxyparse</sub>
</rule>
<rule name="inline comment">
<color>comment</color>
<start>//</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>//.*$</regex>
<sub>TODO</sub>
</rule>
<rule name="doubleQuteText">
<rule name="double quote text">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<regex>(U|u|u8)?&quot;(.|\\[\\&quot;])*?&quot;</regex> <!-- " -->
</rule>
<rule name="simpleQuteText">
<rule name="simple quote text">
<color>doubleQuoteText</color>
<start>'</start>
<end>'</end>
<!--<EscapeChar>\</EscapeChar>-->
<regex>&apos;\\?.&apos;</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\@return|goto|if|else|case|default|switch|break|continue|while|do|for\@</start>
<regex>\b(return|goto|if|else|case|default|switch|break|continue|while|do|for)\b</regex>
</rule>
<rule name="my function keyword">
<color>systemFunction</color>
<start>\@new|try|catch|print\@</start>
<regex>\b(new|try|catch|print)\b</regex>
</rule>
<rule name="my type">
<color>type</color>
<start>\@boolean|byte|char|double|float|int|long|short|String|Object|Thread|void|enum\@</start>
<regex>\b(boolean|byte|char|double|float|int|long|short|String|Object|Thread|void|enum)\b</regex>
</rule>
<rule name="my storage keyword">
<color>storageKeyword</color>
<start>\@import|package|extends|Override|implements|const|class|abstract|private|public|protected|final|const|static|transiant|volatile|interface@</start>
<regex>\b(import|package|extends|Override|implements|const|class|abstract|private|public|protected|final|const|static|transiant|volatile|interface)\b</regex>
</rule>
<rule name="my common Define">
<color>commonDefine</color>
<start>\@null\@</start>
<regex>\bnull\b</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<start>\@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@</start>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="my boolean">
<color>boolean</color>
<start>\@true|false\@</start>
<regex>\b(true|false)\b</regex>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<start>\@[A-Z_][A-Z_0-9]{3,500}\@</start>
<regex>\b[A-Z_][A-Z_0-9]{3,500}\b</regex>
</rule>
<rule name="java member">
<color>memberClass</color>
<regex>\bm_\w+\b</regex>
</rule>
<rule name="function input">
<color>inputFunction</color>
<regex>\b_\w+\b</regex>
</rule>
<rule name="Function name">
<color>functionName</color>
<start>\@(\w|_)+[ \t]*\(</start>
<regex>\b((\w|_)+[ \t]*\()</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<start>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}|</start>
<regex>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}</regex>
</rule>
</pass2>
<pass name="doxyparse">
<rule name="key">
<color>doxygen-key</color>
<regex>(@|\\)[\t ]*\w+</regex>
</rule>
<rule name="in-out">
<color>doxygen-in-out</color>
<regex>\[(in|in,out|out)\]</regex>
</rule>
<rule name="function input">
<color>inputFunction</color>
<regex>\b_\w+\b</regex>
</rule>
</pass>
<pass name="TODO">
<rule name="function input">
<color>SYNTAX_ERROR</color>
<regex>TODO[ \t]*:.*</regex>
</rule>
</pass>
</EdnLang>

View File

@@ -1,34 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Json">
<ext>*.json</ext>
<ext>.*\.(json|JSON)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<regex>&quot;(.|\\[\\&quot;])*?&quot;</regex>
</rule>
<rule name="my comment">
<color>comment</color>
<regex>#.*</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\{|\}|\[|\]</start>
<regex>\{|\}|\[|\]</regex>
</rule>
<rule name="separator">
<color>error</color>
<start>:|,</start>
<regex>:|,</regex>
</rule>
<rule name="names">
<color>functionName</color>
<start>([a-zA-Z0-9]|-|_)*</start>
<regex>([a-zA-Z0-9]|-|_)+</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<start>\@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@</start>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="my boolean">
<color>boolean</color>
<start>\@true|false\@</start>
<regex>\b(true|false)\b</regex>
</rule>
</pass2>
</EdnLang>

View File

@@ -1,60 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Lua">
<ext>*.lua</ext>
<ext>.*\.lua</ext>
<pass1>
<rule name="Comment multiline">
<color>comment</color>
<start>\-\-\[\[</start>
<end>\-\-\]\]</end>
<regex>
<start>\-\-\[\[</start>
<stop>\-\-\]\]</stop>
</regex>
</rule>
<rule name="my todo comment">
<color>SYNTAX_ERROR</color>
<start>\-\-[ \t]*TODO[ \t]*:</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>\-\-[ \t]*TODO[ \t]*:(.|\\[\\\n])*?$</regex>
</rule>
<rule name="my comment">
<color>comment</color>
<start>\-\-</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>\-\-(.|\\[\\\n])*?$</regex>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<regex>&quot;(.|\\[\\&quot;])*?&quot;</regex>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<start>'</start>
<end>'</end>
<regex>&apos;(.|\\[\\&apos;])*?&apos;</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\@and|break|do|else|elseif|end|for|function|if|in|local|nil|not|or|repeat|return|then|until|while\@</start>
<regex>\b(and|break|do|else|elseif|end|for|function|if|in|local|nil|not|or|repeat|return|then|until|while)\b</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<start>\@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@</start>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="my boolean">
<color>boolean</color>
<start>\@true|false\@</start>
<regex>\b(true|false)\b</regex>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<start>\@[A-Z_][A-Z_0-9]{3,500}\@</start>
<regex>\b([A-Z_][A-Z_0-9]{3,500})\b</regex>
</rule>
<rule name="Function name">
<color>functionName</color>
<start>\@(\w|_)+[ \t]*\(</start>
<regex>\b(\w|_)+[ \t]*\(</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<start>==|&lt;=|&gt;=|~=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}|</start>
<regex>==|&lt;=|&gt;=|~=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}</regex>
</rule>
</pass2>
</EdnLang>

View File

@@ -1,43 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Makefiles">
<ext>Makefile</ext>
<ext>*.mk</ext>
<ext>*.global</ext>
<ext>.*\.(mk|global)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="my preprocesseur">
<color>preprocesseur</color>
<start>#</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>#(.|\\[\\\n])*?$</regex>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<regex>&quot;(.|\\[\\&quot;])*?&quot;</regex>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<start>'</start>
<end>'</end>
<regex>&apos;(.|\\[\\&apos;])*?&apos;</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="confition">
<color>type</color>
<start>\@if|ifeq|ifneq|else|endif|define|endef\@</start>
<regex>\b(if|ifeq|ifneq|else|endif|define|endef)\b</regex>
</rule>
<rule name="my keyword">
<color>keyword</color>
<start>\$\([a-zA-Z_][a-zA-Z0-9_]*\)</start>
<regex>\b\([a-zA-Z_][a-zA-Z0-9_]*\)</regex>
</rule>
<rule name="function call">
<color>functionName</color>
<start>\$\((call|info|error|warning|shell|patsubst|lastword|wildcard|addprefix|foreach|subst|word|eval)</start>
<regex>\$\((call|info|error|warning|shell|patsubst|lastword|wildcard|addprefix|foreach|subst|word|eval)</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<start>:=|?=|!=|=</start>
<regex>:=|\?=|!=|=</regex>
</rule>
</pass2>
</EdnLang>

View File

@@ -1,62 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Matlab">
<ext>*.m</ext>
<ext>*.M</ext>
<ext>.*\.(m|M)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="my comment doxygen">
<color>commentDoxygen</color>
<start>%%</start>
<end>\n</end>
<regex>%%(.|\\[\\\n])*?$</regex>
</rule>
<rule name="my comment">
<color>comment</color>
<start>%</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>%(.|\\[\\\n])*?$</regex>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start> "</start>
<end>("|\n)</end>
<EscapeChar>\</EscapeChar>
<regex> &quot;.*?($|&quot;)</regex>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<start> '</start>
<end>('|\n)</end>
<!--<EscapeChar>\</EscapeChar>-->
<regex> &apos;.*?($|&apos;)</regex>
</rule>
<rule name="global inclusion">
<color>preprocesseur</color>
<start>global( |\t)+</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>global( |\t)+(.|\\[\\\n])*?$</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\@return|goto|if|else|case|default|switch|break|continue|while|do|for|otherwise|end\@</start>
<regex>\b(return|goto|if|else|case|default|switch|break|continue|while|do|for|otherwise|end)\b</regex>
</rule>
<rule name="my boolean">
<color>boolean</color>
<start>\@true|false\@</start>
<regex>\b(true|false)\b</regex>
</rule>
<rule name="Function name">
<color>functionName</color>
<start>\@(\w|_)+[ \t]*\(</start>
<regex>\b(\w|_)+[ \t]*\(</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<start>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}|</start>
<regex>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<start>\@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@</start>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<start>\@[A-Z_][A-Z_0-9]{3,500}\@</start>
<regex>\b([A-Z_][A-Z_0-9]{3,500})\b</regex>
</rule>
</pass2>
</EdnLang>

View File

@@ -1,76 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Php: pretty home page">
<ext>*.php</ext>
<ext>*.php3</ext>
<ext>*.php4</ext>
<ext>*.phtml</ext>
<EdnLang version="0.1" lang="PHP">
<ext>.*\.(php(3|4|5|6|7|8)|PHP(3|4|5|6|7|8)|phtml|php|PHP)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="my comment multiline">
<color>comment</color>
<start>/\*</start>
<end>\*/</end>
<rule name="doxygen multiline">
<color>commentDoxygen</color>
<regex>
<start>/\*(\*|!)</start>
<stop>\*/</stop>
</regex>
<sub>doxyparse</sub>
</rule>
<rule name="my todo comment">
<rule name="comment multiline">
<color>comment</color>
<regex>
<start>/\*</start>
<stop>\*/</stop>
</regex>
<sub>TODO</sub>
</rule>
<rule name="comment multiline ERROR">
<color>SYNTAX_ERROR</color>
<start>//[ \t]*TODO[ \t]*:</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>
<start>/\*(\*|!)</start>
</regex>
</rule>
<rule name="my comment inline">
<color>comment</color>
<start>#</start>
<end>\n</end>
<rule name="inline doxygen">
<color>commentDoxygen</color>
<regex>//!.*$</regex>
<sub>doxyparse</sub>
</rule>
<rule name="my comment">
<rule name="inline comment">
<color>comment</color>
<start>//</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>(//|#).*$</regex>
<sub>TODO</sub>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<regex>&quot;(.|\\[\\&quot;])*?&quot;</regex>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<start>'</start>
<end>'</end>
<regex>&apos;(.|\\[\\&apos;])*?&apos;</regex>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="start-stop-php">
<color>macro</color>
<regex>(&lt;\?\w+|\?&gt;)</regex>
</rule>
<rule name="my keyword">
<color>inputFunction</color>
<regex>\$_[a-zA-Z_][a-zA-Z0-9_]*\b</regex>
</rule>
<rule name="my keyword">
<color>keyword</color>
<start>[\$]+[a-zA-Z_][a-zA-Z0-9_]*</start>
<regex>\$[a-zA-Z_][a-zA-Z0-9_]*\b</regex>
</rule>
<rule name="my type">
<color>type</color>
<start>\@array|bool|boolean|double|float|int|integer|numeric|object|resource|string|unset\@</start>
<regex>\b(array|bool|boolean|double|float|int|integer|numeric|object|resource|string|unset)\b</regex>
</rule>
<rule name="my storage keyword">
<color>storageKeyword</color>
<start>\@abstract|and|as|break|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|interface|isset|list|namespace|new|or|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor\@</start>
<regex>\b(abstract|and|as|break|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|interface|isset|list|namespace|new|or|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor)\b</regex>
</rule>
<rule name="my common Define">
<color>commonDefine</color>
<start>\@doubleval|floatval|gettype|intval|print_r|serialize|settype|strval|unserialize|var_dump|var_export\@</start>
<regex>\b(doubleval|floatval|gettype|intval|print_r|serialize|settype|strval|unserialize|var_dump|var_export)\b</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<start>\@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@</start>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="my boolean">
<color>boolean</color>
<start>\@true|TRUE|false|FALSE\@</start>
<regex>\b(TRUE|FALSE)\b</regex>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<regex>\b([A-Z_][A-Z_0-9]{3,500})\b</regex>
</rule>
<rule name="Function name">
<color>functionName</color>
<start>\@(\w|_)+[ \t]*\(</start>
<regex>\b\w+[ \t]*\(</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<start>==|&lt;=|&gt;=|!=|&lt;|&gt;|&amp;&amp;|\{|\}|</start>
<regex>==|&lt;=|&gt;=|!=|&lt;|&gt;|&amp;&amp;|\{|\}</regex>
</rule>
<rule name="simpleQuteTextError">
<color>SYNTAX_ERROR</color>
<regex>&apos;|&quot;</regex>
</rule>
</pass2>
<pass name="doxyparse">
<rule name="knownkey">
<color>doxygen-key-known</color>
<regex>(@|\\)[\t ]*(addindex|addtogroup|anchor|arg|attention|author|authors|a|brief|bug|b|callgraph|category|cite|class|code|cond|copybrief|copydetails|copydoc|copyright|date|def|defgroup|deprecated|details|diafile|dir|docbookonly|dontinclude|dot|dotfile|else|elseif|em|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endif|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|endverbatim|enduml|endxmlonly|enum|example|exception|extends|e|file|fn|headerfile|hidecallergraph|hidecallgraph|hideinitializer|htmlinclude|htmlonly|idlexcept|ifnot|if|image|implements|includelineno|include|ingroup|internal|invariant|interface|latexinclude|latexonly|line|link|license|li|mainpage|manonly|memberof|msc|mscfile|name|namespace|nosubgrouping|note|n|overload|package|page|paragraph|param|parblock|par|post|pre|private|privatesection|property|protected|protectedsection|protocol|public|publicsection|pure|p|refitem|ref|related|relates|relatedalso|relatesalso|remark|remarks|result|return|returns|retval|rtfonly|sa|secreflist|section|see|short|showinitializer|since|skip|skipline|snippet|startuml|struct|subpage|subsection|subsubsection|tableofcontents|test|throw|throws|todo|tparam|typedef|union|until|var|verbatim|verbinclude|version|vhdlflow|warning|weakgroup|xmlonly|xrefitem)</regex>
</rule>
<rule name="key">
<color>doxygen-key</color>
<regex>(@|\\)[\t ]*\w+</regex>
</rule>
<rule name="in-out">
<color>doxygen-in-out</color>
<regex>\[(in|in,out|out)\]</regex>
</rule>
<rule name="function input">
<color>inputFunction</color>
<regex>\b_\w+\b</regex>
</rule>
</pass>
<pass name="TODO">
<rule name="function input">
<color>SYNTAX_ERROR</color>
<regex>TODO[ \t]*:.*</regex>
</rule>
</pass>
</EdnLang>

View File

@@ -1,77 +1,154 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Python">
<ext>*.py</ext>
<ext>.*\.(py|PY)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="my comment multiline">
<color>comment</color>
<start>"""</start>
<end>"""</end>
<regex>
<start>&quot;&quot;&quot;</start>
<stop>&quot;&quot;&quot;</stop>
</regex>
</rule>
<rule name="my comment multiline">
<color>comment</color>
<regex>
<start>'''</start>
<stop>'''</stop>
</regex>
</rule>
<rule name="comment multiline Error">
<color>SYNTAX_ERROR</color>
<regex>
<start>(&quot;&quot;&quot;|''')</start>
</regex>
</rule>
<rule name="my comment doxygen">
<color>commentDoxygen</color>
<start>##</start>
<end>\n</end>
<regex>##.*</regex>
<sub>doxyparse</sub>
</rule>
<rule name="my comment">
<color>comment</color>
<start>#</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
<regex>#.*</regex>
<sub>TODO</sub>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<regex>&quot;(.|\\[\\&quot;])*?&quot;</regex>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<start>'</start>
<end>'</end>
<regex>&apos;((\\[\\&apos;])|.)*?&apos;</regex>
</rule>
<rule name="internalParameter">
<color>normal</color>
<regex>self\.\w*</regex>
<sub>parameter_internal</sub>
</rule>
<rule name="Function name private">
<color>functionNamePrivate</color>
<regex>\b_(\w|_)+[ \t]*\(</regex>
<sub>checkCamelCaseError</sub>
</rule>
<rule name="Function name">
<color>functionName</color>
<regex>\b(\w|_)+[ \t]*\(</regex>
<sub>checkCamelCaseError</sub>
</rule>
<rule name="function input">
<color>inputFunction</color>
<regex>\b_(\w|_)+\b</regex>
<sub>checkCamelCaseError</sub>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\@if|else|elif|break|pass|continue|while|do|for|in|return\@</start>
<regex>\b(if|else|elif|break|pass|continue|while|do|for|in|return)\b</regex>
</rule>
<rule name="my function keyword">
<color>systemFunction</color>
<start>\@print|len|range|del|__init__|self|os\.|sys\.|path\.\@</start>
<regex>\b(print|len|range|del|__init__|self|os\.|sys\.|path\.)\b</regex>
</rule>
<rule name="my type">
<color>type</color>
<start>\@bool|BOOL|char|double|float\@</start>
<regex>\b(bool|BOOL|char|double|float)\b</regex>
</rule>
<rule name="my storage keyword">
<color>storageKeyword</color>
<start>\@def|class|import|from|as|try|except\@</start>
<regex>\b(def|class|import|from|as|try|except)\b</regex>
</rule>
<rule name="numeric constant">
<color>number</color>
<start>\@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@</start>
<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
</rule>
<rule name="my boolean">
<color>boolean</color>
<start>\@True|False\@</start>
<regex>\b(True|False)\b</regex>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<start>\@[A-Z_][A-Z_0-9]{3,500}\@</start>
</rule>
<rule name="Function name">
<color>functionName</color>
<start>\@(\w|_)+[ \t]*\(</start>
<regex>\b([A-Z_][A-Z_0-9]{3,500})\b</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<start>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}|</start>
<regex>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}</regex>
</rule>
<!-- With all elementes : -->
<rule name="BIG LETTER">
<color>macro</color>
<start>([A-Z]|_){4,500}</start>
<elemSubColor id="1">doxElem</elemSubColor>
<rule name="simpleQuteTextError">
<color>SYNTAX_ERROR</color>
<regex>&apos;|&quot;</regex>
</rule>
</pass2>
<pass name="doxyparse">
<rule name="knownkey">
<color>doxygen-key-known</color>
<regex>(@|\\)[\t ]*(addindex|addtogroup|anchor|arg|attention|author|authors|a|brief|bug|b|callgraph|category|cite|class|code|cond|copybrief|copydetails|copydoc|copyright|date|def|defgroup|deprecated|details|diafile|dir|docbookonly|dontinclude|dot|dotfile|else|elseif|em|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endif|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|endverbatim|enduml|endxmlonly|enum|example|exception|extends|e|file|fn|headerfile|hidecallergraph|hidecallgraph|hideinitializer|htmlinclude|htmlonly|idlexcept|ifnot|if|image|implements|includelineno|include|ingroup|internal|invariant|interface|latexinclude|latexonly|line|link|license|li|mainpage|manonly|memberof|msc|mscfile|name|namespace|nosubgrouping|note|n|overload|package|page|paragraph|param|parblock|par|post|pre|private|privatesection|property|protected|protectedsection|protocol|public|publicsection|pure|p|refitem|ref|related|relates|relatedalso|relatesalso|remark|remarks|result|return|returns|retval|rtfonly|sa|secreflist|section|see|short|showinitializer|since|skip|skipline|snippet|startuml|struct|subpage|subsection|subsubsection|tableofcontents|test|throw|throws|todo|tparam|typedef|union|until|var|verbatim|verbinclude|version|vhdlflow|warning|weakgroup|xmlonly|xrefitem)</regex>
</rule>
<rule name="key">
<color>doxygen-key</color>
<regex>(@|\\)[\t ]*\w+</regex>
</rule>
<rule name="in-out">
<color>doxygen-in-out</color>
<regex>\[(in|in,out|out)\]</regex>
</rule>
<rule name="function input">
<color>inputFunction</color>
<regex>\b_\w+\b</regex>
</rule>
</pass>
<pass name="TODO">
<rule name="function input">
<color>SYNTAX_ERROR</color>
<regex>TODO[ \t]*:.*</regex>
</rule>
</pass>
<pass name="parameter_internal">
<rule name="self">
<color>systemFunction</color>
<regex>self</regex>
</rule>
<rule name="function input">
<color>memberClassPrivate</color>
<regex>_[a-z0-9_]+</regex>
</rule>
<rule name="function input">
<color>memberClass</color>
<regex>[a-z0-9_]+</regex>
</rule>
<rule name="function input">
<color>SYNTAX_ERROR</color>
<regex>_\w+</regex>
</rule>
<rule name="function input">
<color>SYNTAX_ERROR</color>
<regex>\w+</regex>
</rule>
</pass>
<pass name="checkCamelCaseError">
<rule name="Function name ERROR (camel case ...)">
<color>SYNTAX_ERROR</color>
<regex>[A-Z]</regex>
</rule>
</pass>
</EdnLang>

View File

@@ -1,35 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.2" lang="XML">
<ext>*.xml</ext>
<ext>*.svg</ext>
<ext>.*\.(xml|XML|svg|SVG|html|HTML|htm|HTM|tpl|TPL)</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="Comment">
<color>comment</color>
<start>&lt;!\-\-</start>
<end>\-\-&gt;</end>
<regex>
<start>&lt;!\-\-</start>
<stop>\-\-&gt;</stop>
</regex>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
<rule name="CDATA">
<color>macro</color>
<regex>
<start>&lt;!\[CDATA\[</start>
<stop>\]\]&gt;</stop>
</regex>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<start>\@'</start>
<end>('|\n)</end>
<!--<EscapeChar>\</EscapeChar>-->
<rule name="stop balise">
<color>functionName</color>
<regex>&lt;/[ \t]*\w+?[ \t]*&gt;</regex>
</rule>
<rule name="stop balise">
<color>SYNTAX_ERROR</color>
<regex>
<start>&lt;/</start>
<stop>&gt;</stop>
</regex>
</rule>
<rule name="start balise">
<color>normal</color>
<regex>
<start>&lt;</start>
<stop>&gt;</stop>
</regex>
<sub>parseInsideBalise</sub>
</rule>
</pass1>
<pass2>
<rule name="special Balise">
<color>error</color>
<start>&lt;\?\w*|\?&gt;</start>
<rule name="start balise">
<color>commonDefine</color>
<regex>&amp;(gt|lt|amp|apos|quot);</regex>
</rule>
<rule name="normale Balise">
<color>functionName</color>
<start>&lt;/[0-9a-zA-Z_]+|&lt;[0-9a-zA-Z_]+|/&gt;|&gt;</start>
<rule name="start balise">
<color>error</color>
<regex>&gt;|&lt;|&amp;|&apos;|&quot;</regex>
</rule>
</pass2>
<pass name="parseInsideBalise">
<rule name="special Balise">
<color>error</color>
<regex>&lt;\?\w*|\?&gt;</regex>
</rule>
<rule name="open balise">
<color>functionName</color>
<regex>&lt;[ \t]*[0-9a-zA-Z_]+</regex>
</rule>
<rule name="close balise">
<color>functionName</color>
<regex>/?&gt;</regex>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<regex>&quot;(.|\r|\n|\\\\|\\&quot;)*?&quot;</regex>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<regex>\b&apos;(.|\r|\n)*?(&apos;|\n)</regex>
</rule>
<rule name="condition">
<color>boolean</color>
<regex>=</regex>
</rule>
<rule name="condition">
<color>keyword</color>
<regex>\w+</regex>
</rule>
</pass>
</EdnLang>

View File

@@ -14,6 +14,7 @@
{ name:"storageKeyword", foreground:"#5c8fed"},
{ name:"inputFunction", foreground:"#B80000", bold:true, italic:true},
{ name:"memberClass", foreground:"#7c5406", bold:true},
{ name:"memberClassPrivate", foreground:"#7c2400", bold:true},
{ name:"number", foreground:"#00ff00"},
{ name:"systemFunction", foreground:"#ffff00"},
{ name:"commonDefine", foreground:"#56bf10"},
@@ -25,7 +26,12 @@
{ name:"macro", foreground:"#6c09c8", bold:true},
{ name:"SYNTAX_ERROR", foreground:"#000000", background:"#FF0000", bold:true},
{ name:"functionName", foreground:"#24d1e0", bold:true},
{ name:"functionNamePrivate", foreground:"#24d190", bold:true},
{ name:"TestResultOK", foreground:"#000000", background:"#00FF00", bold:true},
{ name:"TestResultERROR", FG:"#000000", background:"#FF0000", bold:true}
{ name:"doxygen-key-known", foreground:"#Fc4700", bold:true, italic:false},
{ name:"doxygen-key", foreground:"#dc3700", bold:true, italic:false},
{ name:"doxygen-in-out", foreground:"#dc7000", bold:true, italic:false},
]
}

View File

@@ -9,8 +9,10 @@
{ name:"SelectedText", foreground:"#292929", background:"#009ce7"},
{ name:"error", foreground:"#FF0000"},
{ name:"doubleQuoteText", foreground:"#008e00"},
{ name:"type", foreground:"#376d0a", bold:true},
{ name:"memberClass", foreground:"#7c5406", bold:true},
{ name:"memberClassPrivate", foreground:"#7c2400", bold:true},
{ name:"inputFunction", foreground:"#B80000", bold:true, italic:true},
{ name:"storageKeyword", foreground:"#466cb4"},
{ name:"number", foreground:"#007b00"},
@@ -24,8 +26,13 @@
{ name:"macro", foreground:"#571793", bold:true},
{ name:"SYNTAX_ERROR", foreground:"#000000", background:"#c20000", bold:true},
{ name:"functionName", foreground:"#09857e", bold:true},
{ name:"functionNamePrivate", foreground:"#09854e", bold:true},
{ name:"TestResultOK", foreground:"#000000", background:"#009c00", bold:true},
{ name:"TestResultERROR", foreground:"#000000", background:"#c20000", bold:true}
{ name:"doxygen-key-known", foreground:"#Fc4700", bold:true, italic:false},
{ name:"doxygen-key", foreground:"#dc3700", bold:true, italic:false},
{ name:"doxygen-in-out", foreground:"#dc7000", bold:true, italic:false},
]
}

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000F202F32353735322C1C0C0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000162E3E4D5D6E7E82858785827B6A5A4A3B2B1000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000221405E7C8C9DADBCCCD2D5D7D5D2C9BAAA9A8978593A1B0000000000000000000000000000000000000000
000000000000000000000000000000000000082C4C698BA9C9DBEBFBFFFFFFFFFFFFFFFFFFF8E7D7C2A384654526000000000000000000000000000000000000
00000000000000000000000000000000001D4A7697B5D4F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDCEAE916E411500000000000000000000000000000000
0000000000000000000000000000000633608DB9DFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D9B084562A000000000000000000000000000000
00000000000000000000000000001B4974A2CFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C6996C3F1200000000000000000000000000
000000000000000000000000001D568BB8E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBAE824B12000000000000000000000000
0000000000000000000000001D568FC7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1BC844B120000000000000000000000
00000000000000000000001D568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5BC844B1200000000000000000000
000000000000000000001B568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5BC844B0E000000000000000000
00000000000000000006498BC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5BC7D3B000000000000000000
0000000000000000003374B8FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDAB68260000000000000000
00000000000000001D60A2E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD795521000000000000000
00000000000000084A8DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27F3C00000000000000
000000000000002C76B9FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEAD681E000000000000
000000000000024C97DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1873D000000000000
0000000000002169B5FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFA65C120000000000
000000000000408BD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC57B310000000000
0000000000165EA9F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE49C510700000000
00000000002E7DC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA6C1E00000000
00000000003E8CDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB7D2E00000000
00000000004D9DEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB8D3E00000000
000000000F5DADFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB9D4E00000000
00000000206EBCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAD5D10000000
000000002F7ECDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD6E1F000000
000000003282D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27222000000
000000003585D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC57525000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003584D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC47424000000
000000003282D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27222000000
000000002C7BC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB96B1D000000
000000001C6ABAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8AA5A0C000000
000000000C5AAAF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE89A4B00000000
00000000004A9AE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8893B00000000
00000000003B89D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8792B00000000
00000000002B78C2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB4681B00000000
00000000001059A3EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE964A0100000000
0000000000003984CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF742B0000000000
0000000000001B65AEF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAA1560C0000000000
000000000000004591D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA8037000000000000
00000000000000266EB1F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6A36117000000000000
00000000000000004184C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB9763400000000000000
0000000000000000145699DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE8C4A0700000000000000
0000000000000000002A6CAEF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4A15F1C0000000000000000
000000000000000000003F82BCF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B17432000000000000000000
00000000000000000000124B84BCF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B1783F05000000000000000000
0000000000000000000000124B84BCF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B1783F0700000000000000000000
000000000000000000000000124B84BCECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4B1783F070000000000000000000000
00000000000000000000000000124B7DABD7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCEA1743F07000000000000000000000000
00000000000000000000000000000E3B6895C2EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6B98C5F320500000000000000000000000000
0000000000000000000000000000000026527FADD1EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEACAA3764A1C000000000000000000000000000000
0000000000000000000000000000000000103C6887A6C5E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDEBFA18061340700000000000000000000000000000000
000000000000000000000000000000000000001E3D5C7C9CBACBDBEBFBFFFFFFFFFFFFFFF8E8D8C8B49674563717000000000000000000000000000000000000
0000000000000000000000000000000000000000001231516C7D8D9DADBDC2C5C7C4C2BAAA9A8979684A2B0C0000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000071E2E3E4E5D6E72757774726B5A4B3B2B1B0100000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000101F22252724221D0C000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000111E212425221E0E000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000F263D4E5F6E717475726E5A432B14000000000000000000000000001D4A4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B3600000000
00000000000000001A3E5B728A9DAEBEC1C4C5C2BEA79078603C0B000000000000000000000034839B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B5101000000
000000000000003A6185A8BFD7EBFCFFFFFFFFFFFFF4DDC5AC7B4B15000000000000000000003483D4EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBA15101000000
000000000000004E97CDF1FFFFFFFFFFFFFFFFFFFFFFFFFFEBBB864B090000000000000000003483D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A15101000000
000000000000002B72BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BA78360000000000000000003483D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A15101000000
00000000000000085099E0FFFFF2DECAC5C1C5DAF3FFFFFFFFFFE7A5590D00000000000000003483D4FAFAFAFAFAFAFAFAFAFFFFFFFFFFFFFFF1A15101000000
00000000000000002D74BCDDC0A6917D7571768DB1E5FFFFFFFFFFBE712600000000000000003483AAAAAAAAAAAAAAAAAAAAB8F8FFFFFFFFFFD08D4800000000
000000000000000009529996745A432F2521294174B5FFFFFFFFFFD78C3F0000000000000000265A5A5A5A5A5A5A5A5A5A65A9F3FFFFFFFFE9A5611E00000000
0000000000000000002E694C2A0F0000000000034E9AE4FFFFFFFFF0A0500000000000000000000A0A0A0A0A0A0A0A0A4E91D4FFFFFFFFFFBD79360000000000
00000000000000000000190400000000000000003B8BDBFFFFFFFFF4A45404000000000000000000000000000000003679BCFFFFFFFFFFD5924E0B0000000000
00000000000000000000000000000001060A0D0F3A8ADAFFFFFFFFF8A8571D3434343434343434343434341600001E61A5E8FFFFFFFFEDAB6623000000000000
000000000000000000000013283D4B51565A5D5F628ADAFFFFFFFFF8A857458484848484848484848484843C00074A8DD0FFFFFFFFFFC27E3C00000000000000
00000000000000000C354B5F758B9BA1A6AAADAFB2B7EEFFFFFFFFF8A8574797D4D4D4D4D4D4D4D4D4D48D3D003275B9FCFFFFFFFFD997521000000000000000
0000000000000024517B99AEC3D8EBF1F6FAFDFFFFFFFFFFFFFFFFF8A8574797E7FFFFFFFFFFFFFFFFDD8D3D1A5EA1E5FFFFFFFFF1AF6A280000000000000000
000000000000276294BFE6FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A8574797E7FFFFFFFFFFFFFFFFDD8D3D468BCDFFFFFFFFFFC7833F000000000000000000
00000000001A5998D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A8574797D2D2D2D2D2D2D2D2D2D28D3D72B5F8FFFFFFFFDE9B5714000000000000000000
00000000003B86C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A85745828282828282828282828282599EE1FFFFFFFFF6B36F2D00000000000000000000
000000000D58A3EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A8571B32323232323232323232324386C9FFFFFFFFFFCB88440100000000000000000000
000000002874C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A85707000000000000000000002B6EB1F4FFFFFFFFE4A05C190000000000000000000000
000000003181D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A8570700000000000000000013559ADDFFFFFFFFFBB87431000000000000000000000000
000000003585D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A857070000000000000000003E82C5FFFFFFFFFFD08D4906000000000000000000000000
000000003685D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A857070000000000000000276AAEF1FFFFFFFFE8A5611D00000000000000000000000000
000000003282D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A8570700000000000000105296D9FFFFFFFFFFBC79363131313131313131312F04000000
000000002B78C5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A85707000000000000003C7EC2FFFFFFFFFFE79781818181818181818181817427000000
000000001661AFFBFFFFFFFFFFFFFFFFFFFFFFFFFFDCDBFFFFFFFFF8A857070000000000001D66ABEDFFFFFFFFFFFFD7D1D1D1D1D1D1D1D1D1D1C77727000000
00000000004894DCFFFFFFFFFFFFFFFFFFFFFFFFDD9E9CE7FFFFFFF8A857070000000000002272C2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
00000000002972B3F1FFFFFFFFFFFFFFFFFFFFE4A96C7FCAFFFFFFF8A857070000000000002272C2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
0000000000044280B8EDFFFFFFFFFFFFFFFFDBA9723860ACF7FFFFF8A857070000000000002272C2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
0000000000000F477BA6C8DFECEFEDE4D3BA976C38014591C7C7C7C7A857070000000000002272C2C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C47727000000
000000000000000B3C5D7B939C9F9D958670502800002870777777777755060000000000001F6974747474747474747474747474747474747474746D24000000
000000000000000000142E454C4F4D45382507000000002527272727271D00000000000000001F24242424242424242424242424242424242424242300000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000001B37393916000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000245A888986561D0000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000225C95CAD9C78D4C0200000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000205993CDFFFFF8A8570700000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000001D5791CBFFFFFFF6A9590900000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001B558FC8FFFFFFFDC38645000827454E4F5044270A00000000000000000000000000
00000000000000000000000000000000000000000000000000000000001A538CC6FFFFFFFFC58C521731526F919E9FA090715433000000000000000000000000
0000000000000000000000000000000000000000000000000000000017508BC4FDFFFFFFC78E541B3B709EBBD9EEEFF0D9BDA0713D0700000000000000000000
000000000000000000000000000000000000000000000000000000154E88C2FBFFFFFFCA90561D3C75ACE1FFFFFFFFFFFFFFE1AE784009000000000000000000
0000000000000000000000000000000000000000000000000000124C86BFF9FFFFFFCC92581F3B75ADE6FFFFFFFFFFFFFFFFFFE9B179420A0000000000000000
00000000000000000000000000000000000000000000000000104A83BDF7FFFFFFCE945B213B74ACE6FFFFFFEED1D0CFEDFFFFFFEBB37B440C00000000000000
0000000000000000000000000000000000000000000000000E4881BBF5FFFFFFD0975E233973ABE5FFFFFFE3AE81807FADE0FFFFFFEDB57D460E000000000000
00000000000000000000000000000000000000000000000C467FB9F2FFFFFFD2995F253972ABE4FFFFFFE4AB723E303D6FA7DEFFFFFFEEB77F480C0000000000
0000000000000000000000000000000000000000000009437DB7F0FFFFFFD59B61283871AAE3FFFFFFE5AC733A010000366DA5DDFFFFFFF0B97C410000000000
00000000000000000000000000000000000000000007417AB4EEFFFFFFD79D632A3770A9E2FFFFFFE6AC743B0200000000346CA3DBFFFFFFEEB3682000000000
0000000000000000000000000000000000000000053F78B2ECFFFFFFD9A0662C366FA8E1FFFFFFE7AD753B03000000000000326AA1D9FFFFFFD28A3F00000000
00000000000000000000000000000000000000033C76B0E9FFFFFFDBA2682F356EA7E0FFFFFFE7AE763C0400000000000000003068A0DEFFFFF2A85D15000000
000000000000000000000000000000000000013B74ADE7FFFFFFDEA46A31346DA6DFFFFFFFE8AF763D0400070C0B0100000000002F6DB2FFFFFFC17121000000
0000000000000000000000000000000000003872ABE5FFFFFFE0A66C33336CA5DEFFFFFFE9B0773E050022515C5B4715000000000756A6F6FFFFC77727000000
0000000000000000000000000000000000366FA9E3FFFFFFE2A86F35326BA4DDFFFFFFEAB1783F0600275F92ACAB864C0B0000001D5DADFCFFFFC37323000000
00000000000000000000000000000000336DA7E1FFFFFFE5AB7137316AA3DCFFFFFFEBB279400700296098D0FCF6BC7A2900001B538DCCFFFFFCB3681C000000
000000000000000000000000000000316BA5DEFFFFFFE7AD74393069A2DBFFFFFFECB37A4108002B629AD2FFFFFFCA7A2A001B538CC4FEFFFFDE964A00000000
00000000000000000000000000002F69A2DCFFFFFFE9AF763C3068A1DAFFFFFFEDB47B4209002D649CD4FFFFFFFABC77271B548CC5FDFFFFFFC0752B00000000
000000000000000000000000002D66A0DAFFFFFFEBB1783E2F67A1D9FFFFFFEEB57C430A002F669ED6FFFFFFF8C0894C1C548DC5FDFFFFFFCC90530D00000000
0000000000000000000000002B649ED8FFFFFFEDB47A402E66A0D9FFFFFFEFB67D440B003168A0D8FFFFFFF5BE864F1C548DC5FEFFFFFFCC945B1F0000000000
000000000000000000000028629CD5FFFFFFEFB67C422D669FD8FFFFFFF0B77E450C00336AA2DAFFFFFFF4BC844D1D558DC6FEFFFFFFCC935B23000000000000
00000000000000000000266099D3FFFFFFF2B87E452C659ED7FFFFFFF1B87F460D00356CA4DCFFFFFFF1BA824B1D558EC6FEFFFFFFCC935B2200000000000000
000000000000000000215E97D1FFFFFFF4BA80472B649DD6FFFFFFF2B97F470E00376EA6DDFFFFFFEFB880491D568EC6FFFFFFFFCB935B220000000000000000
0000000000000000135593CFFFFFFFF6BC8349235F9CD5FFFFFFF2B980480F023970A8E0FFFFFFEEB67E471E568EC7FFFFFFFFCB925A22000000000000000000
00000000000000003E81C5FFFFFFF8BF854B125194D0FFFFFFF3BA81480F043B73AAE2FFFFFFEBB47C451E568FC7FFFFFFFFCB925A2100000000000000000000
000000000000002568ADF0FFFFFBC1874D14266FBAFFFFFFF4BB824910053D75ACE4FFFFFFEAB27A431E578FC7FFFFFFFFCA9259210000000000000000000000
000000000000014A94D7FFFFFFC98B5016004590D9FFFFF8BC834A11073F76AEE6FFFFFFE8B078411F578FC8FFFFFFFFCA915921000000000000000000000000
0000000000002169B4FDFFFFD896581A001562ADF7FFFFD1894B12094178B0E8FFFFFFE6AE763F1F5790C8FFFFFFFFC991592000000000000000000000000000
000000000000438CD4FFFFFFB76C2600001A6ABAFFFFFFB3681F0F437AB2E9FFFFFFE4AC753D1F5890C8FFFFFFFFC99158200000000000000000000000000000
0000000000115EACF5FFFFE0974D0400001B6BBBFFFFFFB262465480B4EBFFFFFFE2AA733B205890C9FFFFFFFFC9905820000000000000000000000000000000
00000000002673C1FFFFFFBF752D0000001464B3FCFFFFD3A095A4BFF0FFFFFFE0A87139205891C9FFFFFFFFC890581F00000000000000000000000000000000
00000000003C89D6FFFFE89F550C000000004994DCFFFFFFE8E4F2FFFFFFFFDEA66F37205991CAFFFFFFFFC890571F0000000000000000000000000000000000
00000000004C9CEBFFFFD6883800000000002971BCF7FFFFFFFFFFFFFFFFDAA46D35215991CAFFFFFFFFC88F571E000000000000000000000000000000000000
000000000555A5F4FFFFCA7B2C0000000000094C86BDEFFFFFFFFFFFEBCA9E6933215992CAFFFFFFFFC78F571E00000000000000000000000000000000000000
000000000B5BABFBFFFFC27222000000000000154C7EA4BCD5D5CFC2A281602C215A92CBFFFFFFFFC78F561E0000000000000000000000000000000000000000
000000001060B0FFFFFFBC6C1C000000000000000E3E586F89857F79593717225A92CBFFFFFFFFC78E561D000000000000000000000000000000000000000000
000000001565B5FFFFFFB867170000000000000000000C2439352F291000225B93CBFFFFFFFFC68E561D00000000000000000000000000000000000000000000
000000001B6BBBFFFFFFB2621200000000000000000000000000000000225B93CCFFFFFFFEC68E551D0000000000000000000000000000000000000000000000
000000002070C0FFFFFCAC5C0C000000000000000000000000000000235B93CCFFFFFFFEC68D551D000000000000000000000000000000000000000000000000
000000002575C5FFFFF7A757070000000000000000000000000000235C94CCFFFFFFFEC58D541C00000000000000000000000000000000000000000000000000
000000002B7BCBFFFFF2A2520200000000000000000000000000265C94CDFFFFFFFDC58D541C0000000000000000000000000000000000000000000000000000
000000003080D0FFFFEC9C4C00000000000000000000000013356498CDFFFFFFFDC58C541B000000000000000000000000000000000000000000000000000000
000000003685D6FFFFE7974700000000000000000000193A5B7DA2D5FFFFFFFDC48C531B00000000000000000000000000000000000000000000000000000000
000000003686D6FFFFE7974706090F161C23293039466182A7C6E7FFFFFFFDC48C531B0000000000000000000000000000000000000000000000000000000000
00000000327ECAFFFFF4B17356595F666C7379808996AACBEDFFFFFFFFF8C28C531B000000000000000000000000000000000000000000000000000000000000
000000001861AEF9FFFFE4B4A6A9AFB6BCC3C9D0D7E5F4FFFFFFFFFFE2B687511B00000000000000000000000000000000000000000000000000000000000000
00000000004793DEFFFFFFFDF6F9FFFFFFFFFFFFFFFFFFFFFFFFEECB9F7347160000000000000000000000000000000000000000000000000000000000000000
00000000002B6FABE6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9C7A7845C3004000000000000000000000000000000000000000000000000000000000000000000
0000000000003B77AAD3F2FFFFFFFFFFFFFAF3EDE7DCC9B39D7F5D3B190000000000000000000000000000000000000000000000000000000000000000000000
00000000000004396A8AA7C2C7C4BEB7B1AAA49D978D7C6550361400000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000213E5C7277746E67615A544D473D2F1903000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000122227241E17110A04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000001A373737373737370E000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000003D8787878787877A2E000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000954A2D7D7D7D7D79447000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000206CB9FFFFFFFFF7AC5E130000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000003884D1FFFFFFFFFFC4772B0000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000004509DE9FFFFFFFFFFDC90440000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000001B66B4FFFFFFFFFFFFF4A85B1000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000337FCCFFFFEBD5F6FFFFC1742800000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000004B99E4FFFFC385D2FFFFD98D4000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000001662AFFBFFFBAD6FBDFFFFF1A5590D000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000002D7BC7FFFFE5995AA8F4FFFFBD7025000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000004693DEFFFFD0824593DFFFFFD68A3D000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000115DABF6FFFFBA6C2F7DCAFFFFEEA255090000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000002975C2FFFFF2A5571A66B4FFFFFFBB6D220000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000418EDAFFFFDD90420552A0ECFFFFD3873A000000000000000000000000000000000000000B181B1E1F1C190A0000000000000000
00000000000000000000000C58A5F1FFFFC77A2D003C8AD7FFFFEBA0520600000000000000000000000000000820374858686B6E6F6C6957432D140000000000
0000000000000000000000236FBDFFFFFFB26417002774C1FFFFFFB76A1F0000000000000000000000001337546B8397A8B8BBBEBFBCB9A5907B59340B000000
00000000000000000000003B89D5FFFFE99D4F0200125EACF9FFFFD083370000000000000000000000335B7FA2B9D1E5F6FFFFFFFFFFFFF2DDC7A17A48130000
000000000000000000000753A0ECFFFFD4873A0000004997E4FFFFE89D5003000000000000000000004D97C6EAFFFFFFFFFFFFFFFFFFFFFFFFFFE7B9854A0800
000000000000000000001F6AB7FFFFFFBE71240000003481CEFFFFFFB4681C000000000000000000002B72BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B9783500
000000000000000000003682CFFFFFF6AA5B0F0000001E6BB9FFFFFFCD803500000000000000000000085199E0FFFFF8E4D0CBC7CBDEF8FFFFFFFFFFE6A45A10
000000000000000000024E9CE7FFFFE19446000000000955A4F0FFFFE59A4D00000000000000000000002D74BCE3C7AD97837B777B92B4E7FFFFFFFFFFC2772C
0000000000000000001A65B2FFFFFFCB7F310000000000418EDBFFFFFEB16419000000000000000000000952999B7B6049352B272E4578B6FFFFFFFFFFDE8F40
000000000000000000317ECBFFFFFFB6681C00000000002B78C5FFFFFFCA7D3100000000000000000000002E6C5330150000000000054D99E2FFFFFFFFEB9C4C
0000000000000000004996E2FFFFEEA1530600000000001662B0FDFFFFE2974A0000000000000000000000001C0A00000000000000003989D9FFFFFFFFF8A858
00000000000000001460ADFAFFFFD88C3E373737373737374D9CE8FFFFFAAE601600000000000000000000000000000000000004070A3788D8FFFFFFFFFAAA5A
00000000000000002C78C5FFFFFFCB8A87878787878787878791DBFFFFFFC77A2D0000000000000000000000000D2237454B5054575A5C88D8FFFFFFFFFBAB5B
00000000000000004491DDFFFFFFF7D8D7D7D7D7D7D7D7D7D7DBFFFFFFFFDF9245000000000000000000062F455A6F84959BA0A4A7AAACB1E9FFFFFFFFFBAB5B
00000000000000105BA8F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A95B0F000000000000001E4A7493A8BCD2E5EBF0F4F7FAFCFFFFFFFFFFFFFBAB5B
000000000000002773C0FFFFFFE5C7C7C7C7C7C7C7C7C7C7C7C7C8F1FFFFFFBF7226000000000000225C8EB8DFF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B
000000000000003F8CD8FFFFFFC277777777777777777777777785D1FFFFFFD68A3D0000000000145392CCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B
0000000000000A56A4EFFFFFF6AB5D27272727272727272727276CB9FFFFFFEEA15306000000003881C4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B
000000000000226EBBFFFFFFDF9346000000000000000000000954A2EEFFFFFFB76A1E0000000E58A2EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B
0000000000003A87D3FFFFFFC77B2D00000000000000000000003D8AD6FFFFFFCF82350000001F6DBCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B
000000000005529FEAFFFFFBAF621600000000000000000000002571BEFFFFFFE59A4C0000002D7DCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B
00000000001D69B6FFFFFFE3984B0000000000000000000000000D5AA6F3FFFFFDB0621600003483D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B
00000000003481CEFFFFFFCC7F3400000000000000000000000000438FDBFFFFFFC77A2D00003383D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B
00000000014C9AE5FFFFFFB4661B000000000000000000000000002A76C3FFFFFFDF924500002F7FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B
000000001863B1FDFFFFE89C4F0300000000000000000000000000125EACF7FFFFF5A95B0F002A77C4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B
000000002F7CC9FFFFFFD183370000000000000000000000000000004794DFFFFFFFBF7226001460AEFBFFFFFFFFFFFFFFFFFFFFFFFFFFE5E0FFFFFFFFFBAB5B
000000004795E0FFFFFFB86B200000000000000000000000000000002F7BC8FFFFFFD68A3D00004894DCFFFFFFFFFFFFFFFFFFFFFFFFE2A39EE6FFFFFFFBAB5B
000000135FACF8FFFFEDA153070000000000000000000000000000001662B0FCFFFFEEA15306002971B5F2FFFFFFFFFFFFFFFFFFFFE9AF727EC9FFFFFFFBAB5B
0000002A76C3FFFFFFD5893C00000000000000000000000000000000004C99E4FFFFFFB76A1E00064482BBF0FFFFFFFFFFFFFFFFE1AF783E5FADF7FFFFFBAB5B
000000428FDBFFFFFFBD702400000000000000000000000000000000003380CDFFFFFFCF82350000114A7EABCBE3F1F5F3EADAC09C733E074590CDCDCDCDAB5B
00000E5AA7F3FFFFF2A6590C00000000000000000000000000000000001C68B5FFFFFFE59A4C0000000E40618098A1A5A39B8C78552E020027707D7D7D7D7D59
00002571BEC7C7C7C78E4100000000000000000000000000000000000004509DC7C7C7C7B062160000000018334A5155534B3E2B0E000000002A2D2D2D2D2D22
000033757777777777742900000000000000000000000000000000000000387777777777776E2400000000000000010503000000000000000000000000000000
0000082727272727272703000000000000000000000000000000000000000E272727272727240000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000F202F32353735322C1C0C0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000162E3E4D5D6E7E82858785827B6A5A4A3B2B1000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000221405E7C8C9DADBCCCD2D5D7D5D2C9BAAA9A8978593A1B0000000000000000000000000000000000000000
000000000000000000000000000000000000082C4C698BA9C9DBEBFBFFFFFFFFFFFFFFFFFFF8E7D7C2A384654526000000000000000000000000000000000000
00000000000000000000000000000000001D4A7697B5D4F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDCEAE916E411400000000000000000000000000000000
0000000000000000000000000000000633608DB9DFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D9B184562A000000000000000000000000000000
00000000000000000000000000001B4974A2CFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C6996C3F1200000000000000000000000000
000000000000000000000000001D568BB8E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBAE824B12000000000000000000000000
0000000000000000000000001D568FC7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1BC844B120000000000000000000000
00000000000000000000001D568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFBFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5BC844B1200000000000000000000
000000000000000000001B568FC7FFFFFFFFFFFFFFFFFFFFFFFFF6E1D1C1B2ADABAEB4C4D4E4FCFFFFFFFFFFFFFFFFFFFFFFF5BC844B0E000000000000000000
00000000000000000006498BC7FFFFFFFFFFFFFFFFFFFFFFEBCBAD938272625D5B5E65758696B3D2F1FFFFFFFFFFFFFFFFFFFFF5BC7D3B000000000000000000
0000000000000000003374B8FAFFFFFFFFFFFFFFFFFFF1C5A18261443424140D0B0E172737496889A7CDFAFFFFFFFFFFFFFFFFFFECAB68260000000000000000
00000000000000001D60A2E5FFFFFFFFFFFFFFFFFFDBAE8257381900000000000000000000001F3E5E8BB8E5FFFFFFFFFFFFFFFFFFD795521000000000000000
00000000000000084A8DCFFFFFFFFFFFFFFFFFFFCB996C3F130000000000000000000000000000001B4974A2D7FFFFFFFFFFFFFFFFFFC27F3C00000000000000
000000000000002C76B9FCFFFFFFFFFFFFFFFFCB935A2A0000000000000000000000000000000000000633659ED7FFFFFFFFFFFFFFFFEEAD681E000000000000
000000000000024C97DFFFFFFFFFFFFFFFFFCB935A220000000D11080000000000000000000D110A0000002D659ED7FFFFFFFFFFFFFFFFD1873D000000000000
0000000000002169B5FEFFFFFFFFFFFFFFDC995A220000002B5B61511E0000000000000029596152210000002D65A7E9FFFFFFFFFFFFFFEFA65C120000000000
000000000000408BD4FFFFFFFFFFFFFFF1AE6C2A0000002C659DB18F571E00000000002A629AB19259210000003779BCFFFFFFFFFFFFFFFFC57B310000000000
0000000000165EA9F3FFFFFFFFFFFFFFC5823F0000002C659DD6FFC88F571E0000002A629BD3FFCB92592100000B4D90D2FFFFFFFFFFFFFFE49C510700000000
00000000002E7DC8FFFFFFFFFFFFFFEBA1571300002B659DD6FFFFFFC88F571E002A629BD3FFFFFFCA92591F00002066B0FAFFFFFFFFFFFFFFBA6C1E00000000
00000000003E8CDBFFFFFFFFFFFFFFCB823800000E5B9DD6FFFFFFFFFFC88F572A629BD3FFFFFFFFFFCA904D0000004792DBFFFFFFFFFFFFFFCB7D2E00000000
00000000004D9DEBFFFFFFFFFFFFF7AD611900001666B6FFFFFFFFFFFFFFC88F629BD3FFFFFFFFFFFFF3A7570700002870BBFFFFFFFFFFFFFFDB8D3E00000000
000000000F5DADFBFFFFFFFFFFFFE1934400000008508EC7FFFFFFFFFFFFFFC8A5D3FFFFFFFFFFFFF4BC83430000000854A3F1FFFFFFFFFFFFEB9D4E00000000
00000000206EBCFFFFFFFFFFFFFFD18234000000001D568EC7FFFFFFFFFFFFFFF5FFFFFFFFFFFFF4BC834A12000000004493E1FFFFFFFFFFFFFBAD5D10000000
000000002F7ECDFFFFFFFFFFFFFFC1722400000000001D568EC7FFFFFFFFFFFFFFFFFFFFFFFFF4BC834A1200000000003482D1FFFFFFFFFFFFFFBD6E1F000000
000000003282D2FFFFFFFFFFFFFFB262140000000000001D568EC7FFFFFFFFFFFFFFFFFFFFF4BC834A120000000000002472C2FFFFFFFFFFFFFFC27222000000
000000003585D5FFFFFFFFFFFFFDAD5D0D000000000000001D568EC7FFFFFFFFFFFFFFFFF7BC834A12000000000000001D6DBDFFFFFFFFFFFFFFC57525000000
000000003787D7FFFFFFFFFFFFFBAB5B0B00000000000000002A62A5F5FFFFFFFFFFFFFFE595571E00000000000000001B6BBBFFFFFFFFFFFFFFC77727000000
000000003584D5FFFFFFFFFFFFFEAE5E0E000000000000002A629BD3FFFFFFFFFFFFFFFFFFC88F571E000000000000001E6EBEFFFFFFFFFFFFFFC47424000000
000000003282D2FFFFFFFFFFFFFFB465170000000000002A629BD3FFFFFFFFFFFFFFFFFFFFFFC88F571E0000000000002775C4FFFFFFFFFFFFFFC27222000000
000000002C7BC9FFFFFFFFFFFFFFC4752700000000002A629BD3FFFFFFFFFFFFFFFFFFFFFFFFFFC88F571E00000000003785D4FFFFFFFFFFFFFFB96B1D000000
000000001C6ABAFFFFFFFFFFFFFFD486370000000029629BD3FFFFFFFFFFFFF7E4FFFFFFFFFFFFFFC88F571D000000004796E4FFFFFFFFFFFFF8AA5A0C000000
000000000C5AAAF8FFFFFFFFFFFFE4964A0000000E5A9AD3FFFFFFFFFFFFF4BC94C7FFFFFFFFFFFFFFC88E4B0000000F59A6F4FFFFFFFFFFFFE89A4B00000000
00000000004A9AE7FFFFFFFFFFFFFCB3681F00001767B7FFFFFFFFFFFFF4BC83568EC7FFFFFFFFFFFFF5A8570700002E77C2FFFFFFFFFFFFFFD8893B00000000
00000000003B89D7FFFFFFFFFFFFFFD2883E00000A5191C9FFFFFFFFF4BC834B1D568EC7FFFFFFFFF7BE85450000044D97E0FFFFFFFFFFFFFFC8792B00000000
00000000002B78C2FFFFFFFFFFFFFFF1A75E1B0000205891C9FFFFF4BC834B12001D568EC7FFFFF7BE864D140000296BB6FFFFFFFFFFFFFFFDB4681B00000000
00000000001059A3EDFFFFFFFFFFFFFFCD8B49060000205891C9F0BC834B120000001D568EC7F5BE864D140000145598DBFFFFFFFFFFFFFFDE964A0100000000
0000000000003984CEFFFFFFFFFFFFFFFAB8773300000020588EA0834B1200000000001D568DA6854D140000004083C4FFFFFFFFFFFFFFFFBF742B0000000000
0000000000001B65AEF8FFFFFFFFFFFFFFE5A3662D0000001E4B504212000000000000001C4A5645140000003871B0F2FFFFFFFFFFFFFFEAA1560C0000000000
000000000000004591D9FFFFFFFFFFFFFFFFD79E662D0000000000000000000000000000000006000000003871A9E2FFFFFFFFFFFFFFFFCA8037000000000000
00000000000000266EB1F3FFFFFFFFFFFFFFFFD79E66380B0000000000000000000000000000000000144071A9E2FFFFFFFFFFFFFFFFE6A36117000000000000
00000000000000004184C6FFFFFFFFFFFFFFFFFFD7A77A4D20000000000000000000000000000004295583B0E2FFFFFFFFFFFFFFFFFBB9763400000000000000
0000000000000000145699DBFFFFFFFFFFFFFFFFFFE9BC90654728090000000000000000000F2E4D6B99C4F2FFFFFFFFFFFFFFFFFFCE8C4A0700000000000000
0000000000000000002A6CAEF1FFFFFFFFFFFFFFFFFFFED2B09270544434241E1B1E273747597897B7DBFFFFFFFFFFFFFFFFFFFFE4A15F1C0000000000000000
000000000000000000003F82BCF4FFFFFFFFFFFFFFFFFFFFFADBBBA39382726E6B6E758596A6C2E0FFFFFFFFFFFFFFFFFFFFFFE9B17432000000000000000000
00000000000000000000124B84BCF4FFFFFFFFFFFFFFFFFFFFFFFFF1E1D1C2BEBBBEC4D4E4F4FFFFFFFFFFFFFFFFFFFFFFFFE9B1783F05000000000000000000
0000000000000000000000124B84BCF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B1783F0700000000000000000000
000000000000000000000000124B84BCECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4B1783F070000000000000000000000
00000000000000000000000000124B7DABD7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCEA1743F07000000000000000000000000
00000000000000000000000000000E3B6895C2EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6B98C5F320500000000000000000000000000
0000000000000000000000000000000026527FADD1EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9CAA3764A1D000000000000000000000000000000
0000000000000000000000000000000000103C6887A6C5E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDEBFA18061340700000000000000000000000000000000
000000000000000000000000000000000000001E3D5C7C9CBACBDBEBFBFFFFFFFFFFFFFFF8E8D8C8B49674563717000000000000000000000000000000000000
0000000000000000000000000000000000000000001231516C7D8D9DADBDC2C5C7C4C2BAAA9A8979684A2B0C0000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000071E2E3E4E5D6E72757774726B5A4B3B2B1B0100000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000101F22252724221D0C000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000007384141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141413F20000000000000
00000000000023719191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191918F44000000000000
000000000000114D80B4E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1CB97632B000000000000
0000000000100A0F4378AADDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C28D5A2500282300000000
00000000265B501F06396CA0D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECB884511D083C6E6920000000
000000003787905C28002F6296C9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3AF7B4713114579AD7727000000
000000003787CD9966320025598CC0F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAA6723E0B1A4E82B6C77727000000
000000003787D7D7A3703C091B4F83B6E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD19D69350123578BBFF3C77727000000
000000003787D7FFE0AD7A4712114579ACDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC894602C002C6094C8FCFFC77727000000
000000003787D7FFFFEBB784501D083B6EA1D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3BF8B57230135699DD1FFFFFFC77727000000
000000003787D7FFFFFFF4C18D5A2600316598CCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAB6824E1A0B3E72A6DAFFFFFFFFC77727000000
000000003787D7FFFFFFFFFECB97643000275B8EC2F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1AD79451113477BAFE3FFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFD5A16E3B071D5185B8EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8A4703C081D5184B8ECFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFDFAB78441013477AAEE1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF9B673300255A8DC2F5FFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFE9B5824E1B0A3D70A4D8FFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C5925E2A002F6397CBFEFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFF2BF8B58240033679ACDFFFFFFFFFFFFFFFFFFFFFFFFF1BC89542104386CA0D4FFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFCC996622E00295E90C4F7FFFFFFFFFFFFFFFFFFE7B37F4B170D4174A9DCFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFD39F6A29001F5386BAEEFFFFFFFFFFFFFFDEAA76420E00407EB2E5FFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFD28535000015497CB0E4FFFFFFFFFFD5A16D390600004A9ADEFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFD59B61220007050C3F72A6DAFFFFFFCC986430000C0900306DA7E1FFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFD99E642A01385751230235699CD0F7C38F5B27003159582F003670AAE4FFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFDCA1672D003872A794602C002B5F92AD86521E073B6EA1A0662C003973ADE7FFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFDFA46A3000356FA9E3D19E6A370321515D47150F4377ABDFD79D6329023C78B0EAFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFE2A86E3300326CA6E0FFFFDBA774400E070D01194C80B5E8FFFFD49A6026053F79B3EDFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFE5AB7136002F69A3DDFFFFFFFFE5B17D4A170022568ABEF1FFFFFFFFD1975E2308427CB6F0FFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFE8AE743A002C66A0DAFFFFFFFFFFFFEFBB8756346193C6FAFFFFFFFFFFFFCF945A200B457FB9F4FFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFEBB1773D0329639DD7FFFFFFFFFFFFFFFFF8C79984A2D2FFFFFFFFFFFFFFFFFFCB91571D0E4883BCF7FFFFFFFFFFC77727000000
000000003787D7FFFFFFFFEEB47A400626609AD4FFFFFFFFFFFFFFFFFFFFFFDED4E5FFFFFFFFFFFFFFFFFFFFFFC88E541A114B86BFFAFFFFFFFFC77727000000
000000003787D7FFFFFFF1B77D4309235E97D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC58B5117144E87C3FCFFFFFFC77727000000
000000003787D7FFFFF4BA80460C1F5A94CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC2874E1417518BC6FFFFFFC77727000000
000000003787D7FFF7BD83490F1C5691CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9BF854B111A548FC9FFFFC77727000000
000000003787D7FAC0864C121A538DC8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6BC82470E1D5892CCFFC77727000000
000000003787D7C3894F1516508BC4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B87E450B205B95CFC77727000000
000000003787C68C5218134D87C1FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B67B4207245E98C77727000000
0000000037878F551B104A84BEF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB3793F0427619B7727000000
000000002F6B581E0E4781BBF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAB0773B022A626520000000
000000000020180A447EB8F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6AD7338001E1C00000000
00000000000000397BB5C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AA6F2A000000000000
00000000000000367377777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776C27000000000000
00000000000000062427272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272200000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000001522222222222222222222222222222222222222222222220D00000000000000000000000000000000000000
00000000000000000000000000000000000000014E72727272727272727272727272727272727272727272723F00000000000000000000000000000000000000
000000000000000000000000000000000000000555A5C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
0000000000000000001D2222222222222222222255A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954522222222222222222222170000000000000000
00000000000000001A667272727272727272727272A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5957272727272727272727272580B00000000000000
00000000000000000B4A87C2C2C2C2C2C2C2C2C2C2CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC9C2C2C2C2C2C2C2C2C2B97C3E0000000000000000
000000000000000000175491CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC385480B0000000000000000
00000000000000000000205E9BD8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD8F5214000000000000000000
00000000000000000000002967A4E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7995C1F00000000000000000000
0000000000000000000000003371AEEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0A365280000000000000000000000
000000000000000000000000003D7AB7F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAAD6F32000000000000000000000000
00000000000000000000000000094784C1FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B7793C00000000000000000000000000
000000000000000000000000000012508DCAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC083460800000000000000000000000000
0000000000000000000000000000001C5997D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA8D4F120000000000000000000000000000
000000000000000000000000000000002663A1DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD497591C000000000000000000000000000000
0000000000000000000000000000000000306CAAE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEA1632600000000000000000000000000000000
0000000000000000000000000000000000003978B3F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AA6D300000000000000000000000000000000000
000000000000000000000000000000000000054280BDFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B4773A000000000000000000000000000000000000
000000000000000000000000000000000000000F4C88C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBBE804306000000000000000000000000000000000000
0000000000000000000000000000000000000000195593D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC88B4D1000000000000000000000000000000000000000
000000000000000000000000000000000000000000225F9CDAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD294571A0000000000000000000000000000000000000000
000000000000000000000000000000000000000000002B69A6E3FFFFFFFFFFFFFFFFFFFFFFFFFFDB9E6124000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000003572AFEDFFFFFFFFFFFFFFFFFFFFFFE5A86A2D00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000013E7BB9F6FFFFFFFFFFFFFFFFFFEFB274370000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000B4886C3FFFFFFFFFFFFFFFFF8BC7E41030000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000014528FCCFFFFFFFFFFFFFFC5884A0E000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000001E5B98D6FFFFFFFFFFCF92541700000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000002765A2DFFFFFFFD99C5F210000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000316EACE9FFE2A5682A000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000003B78B5EDAF723400000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000074482B97C3E0100000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000104E85480B0000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000001B3914000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000B150B000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000053C5A6554300000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000053E76AAB59C6F3300000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000002E74B0E7FFE0A46620000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000E549BE1FFFFFFD38D46000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000357BC1FFFFFFFFF9B36B260000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000165CA2E8FFFFFFFFFFD9944D0700000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000003C82C8FFFFFFFFFFFFFFBA742E00000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000001D63AAEFFFFFFFFFFFFFFFE19B540E000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000448BD0FFFFFFFFFFFFFFFFFFC17B35000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000002369B0F6FFFFFFFFFFFFFFFFFFE8A25C160000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000044A92D7FFFFFFFFFFFFFFFFFFFFFFC8833C0000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000002B71B7FDFFFFFFFFFFFFFFFFFFFFFFF0AA631D00000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000B5298DEFFFFFFFFFFFFFFFFFFFFFFFFFFD08B4400000000000000000000000000000000000000000000
000000000000000000000000000000000000000000003278BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B06924000000000000000000000000000000000000000000
0000000000000000000000000000000000000008183463A1E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD795582D1505000000000000000000000000000000000000
00000000000000000000000000000C1B2A3948566679A5D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA97766354453627180800000000000000000000000000
0000000000000000000F1E2D3C4B5A69788897A6B5C6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFC1B2A3948475665648392A1B0C0000000000000000
000000000000213D4E5D6C7C8B9AAAB8C7D6E5F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E2D3C4B5A6978878695A4B38170000000000
00000000002D608A9DADBBCAD9E8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E5D6C7B8AA9A86562400000000
000000001A649FD0ECFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E8C794550C000000
000000003280CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF7022000000
000000003482CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF7225000000
000000001F6CB7F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8AA5D10000000
00000000064684BEF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB2783A00000000
0000000000134D87C2FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B67C410700000000
00000000000016518CC6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4BA7F450B0000000000
000000000000001B548FC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8BE83490F000000000000
00000000000000001E5893CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC1874C1200000000000000
000000000000000000225D96D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC58B50160000000000000000
0000000000000000000025609AD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC98E541A000000000000000000
000000000000000000000029639ED8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD92581D00000000000000000000
0000000000000000000000002D67A2DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0965C210000000000000000000000
00000000000000000000000000316BA5E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5995F25000000000000000000000000
00000000000000000000000000003471B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A8642800000000000000000000000000
000000000000000000000000000006529FEAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB90440000000000000000000000000000
0000000000000000000000000000004393E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD282320000000000000000000000000000
0000000000000000000000000000004B9BEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB8B3B0000000000000000000000000000
00000000000000000000000000000655A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE495450000000000000000000000000000
0000000000000000000000000000105FAFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE9F4F0000000000000000000000000000
00000000000000000000000000001A69B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A9590A00000000000000000000000000
00000000000000000000000000002373C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3631300000000000000000000000000
00000000000000000000000000002E7ECDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD6D1E00000000000000000000000000
00000000000000000000000000003888D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7772800000000000000000000000000
00000000000000000000000000004191E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1813100000000000000000000000000
00000000000000000000000000004B9BEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB8B3B00000000000000000000000000
000000000000000000000000000756A5F5FFFFFFFFFFFFFFFFFFFFFFFFF7D5BBB6BEDCFEFFFFFFFFFFFFFFFFFFFFFFFFE4954500000000000000000000000000
000000000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFF2D0AE8D6C667195B6D8F9FFFFFFFFFFFFFFFFFFFFEE9F4F00000000000000000000000000
000000000000000000000000001A6AB9FFFFFFFFFFFFFFFFFFEECCAA8866442216284A6B90B1D3F5FFFFFFFFFFFFFFFFF8A9590A000000000000000000000000
000000000000000000000000002474C3FFFFFFFFFFFFFFE9C7A783613F1E00000000022446688BADCEF1FFFFFFFFFFFFFFB36314000000000000000000000000
000000000000000000000000002A7AC9FFFFFFFFFFE6C3A17F5D3B1900000000000000000020436486A9CAECFFFFFFFFFFB96919000000000000000000000000
000000000000000000000000001965B3F6FFFFE1BE9C7A583614000000000000000000000000001B3D5F81A3C5E7FFFFEAA45609000000000000000000000000
00000000000000000000000000024786B2C7B8997654321000000000000000000000000000000000001739587D9FBDBEAF7A3B00000000000000000000000000
0000000000000000000000000000144868776C502E0C000000000000000000000000000000000000000000123556706E623E0900000000000000000000000000
000000000000000000000000000000001E272006000000000000000000000000000000000000000000000000000B252013000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000B150B000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000053C5A6554300000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000053E76AAB59C6F3300000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000002E74AFE7FFE0A46620000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000E539BE1FFFFFFD38D46000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000347BC1FFFFFFFFF9B36C270000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000165BA2E8FFFFFFFFFFD9944D0700000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000003C82C8FFFFFFFFFFFFFFBA742E00000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000001D63AAEFFFFFFFFFFFFFFFE19B540E000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000448BD0FFFFFFFFFFFFFFFFFFC17B35000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000002469B0F6FFFFFFFFFFFFFFFFFFE8A25C160000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000044A91D7FFFFFFFFFFFFFFFFFFFFFFC8833C0000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000002B70B7FDFFFFFFFFFFFFFFFFFFFFFFEFAA631D00000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000B5298DEFFFFFFFFFFFFFFFFFFFFFFFFFFD08B4400000000000000000000000000000000000000000000
000000000000000000000000000000000000000000003278BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B06924000000000000000000000000000000000000000000
0000000000000000000000000000000000000008183463A0E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD793592B1405000000000000000000000000000000000000
00000000000000000000000000000B1B2A3948586679A5D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA9B746254453627180800000000000000000000000000
0000000000000000000F1E2D3C4B5A69788897A6B5C6E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDCC1B2A3948475665648392A1B0B0000000000000000
000000000000203D4E5D6C7C8B9AAAB8C7D6E5F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E2D3C4B5A6978878695A4B38170000000000
00000000002D608A9DADBBCAD9E8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E5D6C7B8AA9A85552400000000
000000001A649ED0EBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E8C794550B000000
000000003280CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF7022000000
000000003582CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC07225000000
000000001F6CB7F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8AA5D10000000
00000000064784BEF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB3783B00000000
0000000000134D87C2FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B77C410700000000
00000000000017518CC6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4BA7F460B0000000000
000000000000001B548FC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8BE83490F000000000000
00000000000000001E5893CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC1874C1200000000000000
000000000000000000215C96D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC58B50160000000000000000
0000000000000000000025609AD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC98E541A000000000000000000
000000000000000000000029639ED8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD92581D00000000000000000000
0000000000000000000000002D67A1DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0965C210000000000000000000000
00000000000000000000000000306BA5E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4995F25000000000000000000000000
00000000000000000000000000003471B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A8642800000000000000000000000000
000000000000000000000000000006529FEAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB90430000000000000000000000000000
0000000000000000000000000000004292E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD282320000000000000000000000000000
0000000000000000000000000000004B9BEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB8B3B0000000000000000000000000000
00000000000000000000000000000655A5F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE495450000000000000000000000000000
0000000000000000000000000000105FAFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE9F4F0000000000000000000000000000
00000000000000000000000000001A69B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A9590A00000000000000000000000000
00000000000000000000000000002373C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3631300000000000000000000000000
00000000000000000000000000002E7ECDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD6D1E00000000000000000000000000
00000000000000000000000000003788D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7772800000000000000000000000000
00000000000000000000000000004191E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1813100000000000000000000000000
00000000000000000000000000004B9BEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB8B3B00000000000000000000000000
000000000000000000000000000655A5F4FFFFFFFFFFFFFFFFFFFFFFFFF7D5BBB6BEDCFEFFFFFFFFFFFFFFFFFFFFFFFFE4954500000000000000000000000000
00000000000000000000000000105FAFFEFFFFFFFFFFFFFFFFFFFFF2D0AE8D6C667295B6D8F9FFFFFFFFFFFFFFFFFFFFEE9F4F00000000000000000000000000
000000000000000000000000001A69B9FFFFFFFFFFFFFFFFFFEECCAA8866442216284A6B90B1D3F5FFFFFFFFFFFFFFFFF8A9590A000000000000000000000000
000000000000000000000000002473C3FFFFFFFFFFFFFFE9C7A78361401E00000000022446688BADCFF1FFFFFFFFFFFFFFB36314000000000000000000000000
00000000000000000000000000297AC9FFFFFFFFFFE5C3A17F5D3B1900000000000000000020436486A9CAECFFFFFFFFFFB96919000000000000000000000000
000000000000000000000000001965B3F6FFFFE1BF9C7B583614000000000000000000000000001C3E5F81A3C5E7FFFFEAA45609000000000000000000000000
00000000000000000000000000024785B2C7B8997654321000000000000000000000000000000000001739587D9FBDBEAF7A3B00000000000000000000000000
0000000000000000000000000000144868776C502E0C000000000000000000000000000000000000000000123556716E623E0800000000000000000000000000
000000000000000000000000000000001E272106000000000000000000000000000000000000000000000000000B252013000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000B150B000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000053C5A6554300000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000053E76AAB59C6F3300000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000002E74AFE7FFE0A46620000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000E549BE1FFFFFFD38D46000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000357BC1FFFFFFFFF9B36B260000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000165CA2E8FFFFFFFFFFD9944D0700000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000003C82C8FFFFFFFFFFFFFFBA742E00000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000001D63AAEFFFFFFFFFFFFFFFE19B540E000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000448BD0FFFFFFFFFFFFFFFFFFC17B35000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000002369B0F6FFFFFFFFFFFFFFFFFFE8A25C160000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000044A92D7FFFFFFFFFFFFFFFFFFFFFFC8833C0000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000002B71B7FDFFFFFFFFFFFFFFFFFFFFFFF0AA631D00000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000B5298DEFFFFFFFFFFFFFFFFFFFFFFFFFFD08B4400000000000000000000000000000000000000000000
000000000000000000000000000000000000000000003278BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B06924000000000000000000000000000000000000000000
0000000000000000000000000000000000000008183463A1E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD795582D1505000000000000000000000000000000000000
00000000000000000000000000000C1B2A3948586679A5D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA97766354453627180800000000000000000000000000
0000000000000000000F1E2D3C4B5A69788897A6B5C6E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFC1B2A3948475665648392A1B0C0000000000000000
000000000000203D4E5D6C7C8B9AAAB8C7D6E5F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E2D3C4B5A6978878695A4B38170000000000
00000000002D608A9DADBBCAD9E8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E5D6C7B8AA9A86552400000000
000000001A649ED0ECFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E8C794550C000000
000000003280CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF7022000000
000000003582CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC07225000000
000000001F6CB7F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8AA5D10000000
00000000064684BEF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB2783A00000000
0000000000134D87C2FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B67C410700000000
00000000000016518CC6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4BA7F450B0000000000
000000000000001B548FC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8BE83490F000000000000
00000000000000001E5893CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC1874C1200000000000000
000000000000000000225D96D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC58B50160000000000000000
0000000000000000000025609AD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC98E541A000000000000000000
000000000000000000000029639ED8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD92581D00000000000000000000
0000000000000000000000002D67A2DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0965C210000000000000000000000
00000000000000000000000000316BA5E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5995F25000000000000000000000000
00000000000000000000000000003471B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A8642800000000000000000000000000
000000000000000000000000000006529FEAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB90440000000000000000000000000000
0000000000000000000000000000004292E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD282320000000000000000000000000000
0000000000000000000000000000004B9BEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB8B3B0000000000000000000000000000
00000000000000000000000000000655A5F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE495460000000000000000000000000000
0000000000000000000000000000105FAFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE9F4F0000000000000000000000000000
00000000000000000000000000001A69B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A9590A00000000000000000000000000
00000000000000000000000000002373C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3631300000000000000000000000000
00000000000000000000000000002E7ECDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD6D1E00000000000000000000000000
00000000000000000000000000003788D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7772800000000000000000000000000
00000000000000000000000000004191E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1813200000000000000000000000000
00000000000000000000000000004B9BEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB8B3B00000000000000000000000000
000000000000000000000000000655A5F4FFFFFFFFFFFFFFFFFFFFFFFFF7D5BBB6BEDCFEFFFFFFFFFFFFFFFFFFFFFFFFE4954600000000000000000000000000
00000000000000000000000000105FAFFEFFFFFFFFFFFFFFFFFFFFF2D0AE8D6C667195B6D8F9FFFFFFFFFFFFFFFFFFFFEE9F4F00000000000000000000000000
000000000000000000000000001A69B9FFFFFFFFFFFFFFFFFFEECCAA8866442216284A6B90B1D3F5FFFFFFFFFFFFFFFFF8A9590A000000000000000000000000
000000000000000000000000002473C3FFFFFFFFFFFFFFE9C7A78361401E00000000022446688BADCEF1FFFFFFFFFFFFFFB36314000000000000000000000000
00000000000000000000000000297AC9FFFFFFFFFFE5C3A17F5D3B1900000000000000000020436486A9CAECFFFFFFFFFFB96919000000000000000000000000
000000000000000000000000001965B3F6FFFFE1BF9C7B583614000000000000000000000000001B3D5F81A3C5E7FFFFEAA45609000000000000000000000000
00000000000000000000000000024786B2C7B8997654321000000000000000000000000000000000001739587D9FBDBEAF7A3B00000000000000000000000000
0000000000000000000000000000144868776C502E0C000000000000000000000000000000000000000000123556706E623E0800000000000000000000000000
000000000000000000000000000000001E272006000000000000000000000000000000000000000000000000000B252013000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000016373737373737373737373737373737373737373737372C000000000000000000000000
000000000000000000000000000000000000000000000000000000124D878787878787878787878787878787878787878787876F330000000000000000000000
00000000000000000000000000000000000000000000000000000E4883BED7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D79E4E0000000000000000000000
0000000000000000000000000000000000000000000000000009447EB9F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
000000000000000000000000000000000000000000000000043F7AB5F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000000000000000000000000000003A74B0EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000000000000000000000000003570ABE5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000000000000000000000000306BA6E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000000000000000000000002C67A1DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
000000000000000000000000000000000000000027629DD8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000000000000000000225E98D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000000000000000001D5893CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
000000000000000000000000000000000019548FC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000000000000144F8AC4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000000000000F4A85C0FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000000000A4680BBF6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000000006417BB7F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
000000000000000000000000013C77B2EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000003772ADE8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000F5FA8E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE9E4E0000000000000000000000
00000000000000000000000C5AA6C4C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C896470000000000000000000000
00000000000000000000000035687478787878787878787878787878787878787878787878787878787878787878787878787864250000000000000000000000
000000000000000000000000001D242828282828282828282828282828282828282828282828282828282828282828282828281B000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000001213537373737373737373737373737373730170000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000E4769858787878787878787878787878787877D623501000000000000000000000000000000000000000000000000000000000000000000000000
00000000014780B4D4D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7C8A67230000000000000000000000000000000000000000000000000000000000000000000000000
000000002069B4F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE39C55080000000000000000000000000000000000000000000000000000000000000000000000
000000003484D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB060100000000000000000000000000000000000000000000000000000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB060100000000000000000000000000000000000000000000000000000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0602F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2E250900000000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB27F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7E705328000000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCEBB99642C0000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD599510900000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC702000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFF7D8CCC7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C5752500000000000000000000
000000003787D7FFFFFFFFFFFFF6CBAD8F7C777777777777777777777777777777777777777777777777777777777777777777776E2300000000000000000000
000000003787D7FFFFFFFFFFF3BC8561442C27272727272727272727272727272727272727272727272727272727272727272727240000000000000000000000
000000003787D7FFFFFFFFF4B8824B19000002020202020202020202020202020202020202020202020202020202020202020202020202020202020000000000
000000003787D7FFFFFFFFD0884711062D4C52525252525252525252525252525252525252525252525252525252525252525252525252525252522D00000000
000000003787D7FFFFFFF5AD651D08407697A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A29E580C000000
000000003787D7FFFFFFD78B43002F77B1E0F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2BD7023000000
000000003787D7FFFFFFCC7D2D02509AE2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC67626000000
000000003787D7FFFFFFC474240A5AAAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC07020000000
000000003787D7FFFFFFBE6E1E1060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB96919000000
000000003787D7FFFFFFB868181666B6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB26213000000
000000003787D7FFFFFFB363131C6CBCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAC5C0C000000
000000003787D7FFFFFDAD5D0D2171C1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A55505000000
000000003787D7FFFFF7A757072777C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE9E4E00000000
000000003787D7FFFFF1A151012D7DCDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7984700000000
000000003787D7FFFFEB9B4B003382D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1914100000000
000000003787D7FFFFE69646003989D8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA8A3A00000000
000000003787D7FFFFE09040003F8FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3833300000000
000000003787D7FFFFDA8A3A004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD7D2D00000000
000000003787D7FFFFD48334004A9AEAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6762600000000
000000003787D7FFFFCE7E2E0050A0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF6F1F00000000
000000003787D7FFFFC878280656A6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8691900000000
000000003787D7FFFFC373230C5CACFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2621200000000
000000003787D7FFFFBF6F1F1261B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B00000000
000000003787D7FFFFCB8B4E487FC1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A5550500000000
000000003787D7FFFFFCBF9894B9F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE9E4E0000000000
000000003787D7FFFFFFFDE5E3F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE797470000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE090400000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA8A3A0000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD382330000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC7D2C0000000000
000000003382CCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA71230000000000
000000001A62ACE5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0974F070000000000
00000000003B74A5C5C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B8965F28000000000000
0000000000033B5C757777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776B4E2500000000000000
00000000000000122527272727272727272727272727272727272727272727272727272727272727272727272727272727272727272720040000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000F202F32353735322C1C0C0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000162E3E4D5D6E7E82858785827B6A5A4A3B2B1000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000221405E7C8C9DADBCCCD2D5D7D5D2C9BAAA9A8978593A1B0000000000000000000000000000000000000000
000000000000000000000000000000000000082C4C698BA9C9DBEBFBFFFFFFFFFFFFFFFFFFF8E7D7C2A384654526000000000000000000000000000000000000
00000000000000000000000000000000001D4A7697B5D4F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDCEAE906D411400000000000000000000000000000000
0000000000000000000000000000000633608DB9DFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D9B184562A000000000000000000000000000000
00000000000000000000000000001B4974A2CFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C6996C3F1100000000000000000000000000
000000000000000000000000001D568BB8E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBAE824B12000000000000000000000000
0000000000000000000000001D568FC7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1BC844B120000000000000000000000
00000000000000000000001D568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4BC844B1200000000000000000000
000000000000000000001B568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E6D8D4D2D4DAEBFBFFFFFFFFFFFFFFFFFFFFFFFFFFF4BC844B0E000000000000000000
00000000000000000006498BC7FFFFFFFFFFFFFFFFFFFFFFFFEED3C1AC99888482848C9DADBCD9F8FFFFFFFFFFFFFFFFFFFFFFF4BC7D3B000000000000000000
0000000000000000003374B8FAFFFFFFFFFFFFFFFFFFFFFBC8A785715D4A383432343E4D5D6F91AFCEF4FFFFFFFFFFFFFFFFFFFFECAB68260000000000000000
00000000000000001D60A2E5FFFFFFFFFFFFFFFFFFFFFFDE8E5D3B2410000000000000000F26466585B1DEFFFFFFFFFFFFFFFFFFFFD795521000000000000000
00000000000000084A8DCFFFFFFFFFFFFFFFFFFFFFFFFFFBC187501700000000000000000000001B426F9CC9FDFFFFFFFFFFFFFFFFFFC27F3C00000000000000
000000000000002C76B9FCFFFFFFFFFFFFFFFFFFFFFFFFFFFAC18750170000000000000000000000002D598CC4FDFFFFFFFFFFFFFFFFEEAD681E000000000000
000000000000024C97DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC18750170000000000000000000000001B538CC4FDFFFFFFFFFFFFFFFFD1873D000000000000
0000000000002169B5FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC18750170000000000000000000000001B538CCDFFFFFFFFFFFFFFFFEFA65C120000000000
000000000000408BD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC18750170000000000000000000000001B5EA0E3FFFFFFFFFFFFFFFFC57B310000000000
0000000000165EA9F3FFFFFFFFFFFFFFFBDEFBFFFFFFFFFFFFFFFFFFFAC18750170000000000000000000000003173B6F8FFFFFFFFFFFFFFE49C510700000000
00000000002E7DC8FFFFFFFFFFFFFFFFC88EC1FAFFFFFFFFFFFFFFFFFFFAC1875017000000000000000000000004478ED6FFFFFFFFFFFFFFFFBA6C1E00000000
00000000003E8CDBFFFFFFFFFFFFFFEEA75D87C1FAFFFFFFFFFFFFFFFFFFFAC18750170000000000000000000000236CB7FFFFFFFFFFFFFFFFCB7D2E00000000
00000000004D9DEBFFFFFFFFFFFFFFD3853B5087C1FAFFFFFFFFFFFFFFFFFFFAC187501700000000000000000000054E99E1FFFFFFFFFFFFFFDB8D3E00000000
000000000F5DADFBFFFFFFFFFFFFFFBF7124185087C1FAFFFFFFFFFFFFFFFFFFFAC1875017000000000000000000002E7BC9FFFFFFFFFFFFFFEB9D4E00000000
00000000206EBCFFFFFFFFFFFFFFF9AC5D1000185087C1FAFFFFFFFFFFFFFFFFFFFAC18750170000000000000000001C6AB9FFFFFFFFFFFFFFFBAD5E10000000
000000002F7ECDFFFFFFFFFFFFFFE6994A000000185087C1FAFFFFFFFFFFFFFFFFFFFAC187501700000000000000000C59A9F7FFFFFFFFFFFFFFBD6E1F000000
000000003282D2FFFFFFFFFFFFFFD8883700000000185087C1FAFFFFFFFFFFFFFFFFFFFAC187501700000000000000004A99E8FFFFFFFFFFFFFFC27222000000
000000003585D5FFFFFFFFFFFFFFD584350000000000185087C1FAFFFFFFFFFFFFFFFFFFFAC1875017000000000000004494E4FFFFFFFFFFFFFFC57525000000
000000003787D7FFFFFFFFFFFFFFD28232000000000000185087C1FAFFFFFFFFFFFFFFFFFFFAC18750170000000000004292E2FFFFFFFFFFFFFFC77727000000
000000003584D5FFFFFFFFFFFFFFD5843500000000000000175087C1FAFFFFFFFFFFFFFFFFFFFAC187501700000000004595E5FFFFFFFFFFFFFFC47424000000
000000003282D2FFFFFFFFFFFFFFDA8C3E0000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFAC1875017000000004A99E9FFFFFFFFFFFFFFC27222000000
000000002C7BC9FFFFFFFFFFFFFFEB9D4D000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFAC18750170000105DACF9FFFFFFFFFFFFFFB96B1D000000
000000001C6ABAFFFFFFFFFFFFFFFBAD5D0F000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFAC1875017002471BFFFFFFFFFFFFFFFF8AA5A0C000000
000000000C5AAAF8FFFFFFFFFFFFFFBD6F2700000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFAC18750173785D3FFFFFFFFFFFFFFE89A4B00000000
00000000004A9AE7FFFFFFFFFFFFFFD991460000000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFAC18750509BE6FFFFFFFFFFFFFFD88A3B00000000
00000000003B89D7FFFFFFFFFFFFFFF9AF661B0000000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFAC18771BBFFFFFFFFFFFFFFFFC8792B00000000
00000000002B78C2FFFFFFFFFFFFFFFFCE8543010000000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFAC1A2DDFFFFFFFFFFFFFFFDB4681B00000000
00000000001059A3EDFFFFFFFFFFFFFFF4B26F2D000000000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFDE964A0100000000
0000000000003984CEFFFFFFFFFFFFFFFFDF9D5A1B000000000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0742B0000000000
0000000000001B65AEF8FFFFFFFFFFFFFFFFC98C541B000000000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAA1560C0000000000
000000000000004591D9FFFFFFFFFFFFFFFFFDC58D541C000000000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA8037000000000000
00000000000000266EB1F3FFFFFFFFFFFFFFFFFEC58D5E32050000000000000000000000175087C1FAFFFFFFFFFFFFFFFFFFFFFFFFFFE6A46117000000000000
00000000000000004184C6FFFFFFFFFFFFFFFFFFFECEA17447240500000000000000000000175087C1FFFFFFFFFFFFFFFFFFFFFFFFFBB9763400000000000000
0000000000000000145699DBFFFFFFFFFFFFFFFFFFFFE4B68E6D4F2F1C0C00000000001024375071A2EFFFFFFFFFFFFFFFFFFFFFFFCF8C4A0700000000000000
0000000000000000002A6CAEF1FFFFFFFFFFFFFFFFFFFFF9D7B89A7B6A5A4A4443454A5D718599BBDDFFFFFFFFFFFFFFFFFFFFFFE4A15F1D0000000000000000
000000000000000000003F82BCF5FFFFFFFFFFFFFFFFFFFFFFFFE2C9BAAA9994939599ABC1D3E6FFFFFFFFFFFFFFFFFFFFFFFFEAB17432000000000000000000
00000000000000000000124B84BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E8E4E3E5E9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFEAB1794005000000000000000000
0000000000000000000000124B84BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAB179400700000000000000000000
000000000000000000000000124B84BCEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5B17940070000000000000000000000
00000000000000000000000000124B7DABD7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCFA3754008000000000000000000000000
00000000000000000000000000000E3B6895C2EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7BA8D60330600000000000000000000000000
0000000000000000000000000000000026527FADD1EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBCBA5774B1E000000000000000000000000000000
0000000000000000000000000000000000103D6887A6C5E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0C1A48262350800000000000000000000000000000000
000000000000000000000000000000000000001E3D5C7C9CBACBDBEBFBFFFFFFFFFFFFFFFAEAD9CAB59776573819000000000000000000000000000000000000
0000000000000000000000000000000000000000001231516C7D8D9DADBDC2C5C9C6C4BBAC9C8B7B6A4C2D0D0000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000071E2E3E4E5D6E72757976746C5C4C3D2D1C0200000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000101F22252926241E0E000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000F202F32353735322C1C0C0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000162E3E4D5D6E7E82858785827B6A5A4A3B2B1000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000221405E7C8C9DADBCCCD2D5D7D5D2C9BAAA9A8978593A1B0000000000000000000000000000000000000000
000000000000000000000000000000000000082C4C698BA9C9DBEBFBFFFFFFFFFFFFFFFFFFF8E7D7C2A384654526000000000000000000000000000000000000
00000000000000000000000000000000001D4A7697B5D4F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDCEAE916E411400000000000000000000000000000000
0000000000000000000000000000000633608DB9DFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D9B184562A000000000000000000000000000000
00000000000000000000000000001B4874A2CFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C6996C3F1200000000000000000000000000
000000000000000000000000001D568BB8E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBAE824B12000000000000000000000000
0000000000000000000000001D568FC7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1BC844B120000000000000000000000
00000000000000000000001D568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4BC844B1200000000000000000000
000000000000000000001B568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4BC844B0E000000000000000000
00000000000000000006498BC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4BC7D3B000000000000000000
0000000000000000003374B8FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECAB68260000000000000000
00000000000000001D60A2E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD795521000000000000000
00000000000000084A8DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27F3C00000000000000
000000000000002C76B9FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEAD681E000000000000
000000000000024C97DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1873D000000000000
0000000000002169B5FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFA65C120000000000
000000000000408BD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC57B310000000000
0000000000165EA9F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE49A510700000000
00000000002E7DC8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA6C1E00000000
00000000003E8CDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB7D2E00000000
00000000004D9DEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB8D3E00000000
000000000F5DADFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB9D4E00000000
00000000206EBCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAD5D10000000
000000002F7ECDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD6E1F000000
000000003282D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27222000000
000000003585D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC57525000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003584D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC47424000000
000000003282D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27222000000
000000002C7BC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB96B1D000000
000000001C6ABAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8AA5A0C000000
000000000C5AAAF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE89A4B00000000
00000000004A9AE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8893B00000000
00000000003B89D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8792B00000000
00000000002B78C2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB4681B00000000
00000000001059A3EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE964A0100000000
0000000000003A84CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF742B0000000000
0000000000001B65AEF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAA1560C0000000000
000000000000004591D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA8037000000000000
00000000000000266EB0F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6A36117000000000000
00000000000000004184C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB9763400000000000000
0000000000000000155699DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE8C4A0700000000000000
0000000000000000002A6CAEF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4A15F1C0000000000000000
000000000000000000003F82BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B17432000000000000000000
00000000000000000000124B84BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B1784005000000000000000000
0000000000000000000000124B84BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B178400700000000000000000000
000000000000000000000000124B84BCEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4B17840070000000000000000000000
00000000000000000000000000124B7DABD7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCEA1744007000000000000000000000000
00000000000000000000000000000E3B6895C2EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6B98C5F320500000000000000000000000000
0000000000000000000000000000000026527FADD1EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9CAA3764A1C000000000000000000000000000000
0000000000000000000000000000000000103D6887A6C5E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDEBFA18061340700000000000000000000000000000000
000000000000000000000000000000000000001E3D5C7C9CBACBDBEBFBFFFFFFFFFFFFFFF8E8D8C8B49674563717000000000000000000000000000000000000
0000000000000000000000000000000000000000001231516C7D8D9DADBDC2C5C7C4C2BAAA9A8979684A2B0C0000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000071E2E3E4E5D6E72757774726B5A4B3B2B1B0100000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000101F22252724221D0C000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000009303315000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000842798250160000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000053F79B3C1874D130000000000053E50505050505050491C000000000000000000000000
000000000000000000000000000000000000000000000000000000033C76B0EAF8BE844A0F000000003576A0A0A0A0A0A0A08D51060000000000000000000000
0000000000000000000000000000000000000000000000000000003974ADE7FFFFF5BB81470C0000004191E1F0F0F0F0F0F0AF5F0F0000000000000000000000
00000000000000000000000000000000000000000000000000003670AAE4FFFFFFFFF2B87D430900004191E1FFFFFFFFFFFFAF5F0F0000000000000000000000
00000000000000000000000000000000000000000000000000336DA7E1FFFFFFFFFFFFEFB47A400600408EC8FFFFFFFFFFFFAF5F0F0000000000000000000000
0000000000000000000000000000000000000000000000003069A4DEFFFFFFFFFFFFFFFFEBB1783D031D5792CCFFFFFFFFFFAF5F0F0000000000000000000000
00000000000000000000000000000000000000000000002C66A1DBFFFFFFFFF5F3FFFFFFFFE8AE743A00215B95D0FFFFFFFFAF5F0F0000000000000000000000
0000000000000000000000000000000000000000000029639DD7FFFFFFFFD7A7A3CBFFFFFFFFE5AB713600245F99D4FFFFFFAF5F0F0000000000000000000000
00000000000000000000000000000000000000000026609AD4FFFFFFFFDAA1665992CDFFFFFFFFE2A76D330028629DD7FFFFAF5F0F0000000000000000000000
0000000000000000000000000000000000000000235E97D1FFFFFFFFDDA36930215C96D0FFFFFFFFDEA46A30002C66A1DBFFAF5F0F0000000000000000000000
00000000000000000000000000000000000000205A94CEFFFFFFFFE1A66C320000245F99D3FFFFFFFFDBA1672D00306AA4DFAF5F0F0000000000000000000000
0000000000000000000000000000000000001D5791CBFFFFFFFFE4AA6F35001E250028629CD6FFFFFFFFD89E642900336DA8AF5F0F0000000000000000000000
00000000000000000000000000000000001A538EC8FFFFFFFFE7AD733800215B692F002B65A0D9FFFFFFFFD59B6026003771AC5F0F0000000000000000000000
0000000000000000000000000000000016508BC5FFFFFFFFEAB0763C021E5892A0662B002F68A3DDFFFFFFFFD2975E23003B745F0F0000000000000000000000
000000000000000000000000000000134D87C1FCFFFFFFEDB3793F051B558FC9D79D622800326CA6E0FFFFFFFFCF945A20043D42020000000000000000000000
0000000000000000000000000000104A84BEF9FFFFFFF0B67C420818528CC6FFFFD3995F2500356FA9E3FFFFFFFFCB91571D0000000000000000000000000000
000000000000000000000000000E4781BBF5FFFFFFF3B97F450B154F89C3FDFFFFFFD0965C22003872ACE7FFFFFFFFC88E531A00000000000000000000000000
0000000000000000000000000A447EB8F2FFFFFFF7BC82480E114B86C0FAFFFFFFFFFFCD93591E013B77B0EAFFFFFFFFC58B5016000000000000000000000000
000000000000000000000007417BB5EFFFFFFFFABF854B110E4883BDF7FFFFFFFFFFFFFFCA90551B043E79B3EDFFFFFFFCC1874D130000000000000000000000
00000000000000000000043D78B2ECFFFFFFFDC3894E140B467FB9F4FFFFFFFFFFFFFFFFFFC68C521807427BB6F0FFFFFFF8BE854A1000000000000000000000
000000000000000000003B75AFE9FFFFFFFFC68C521808427CB7F1FFFFFFFFFFFFFFFFFFFFFDC3884F150B457FB9F3FFFFFFF5BB81470C000000000000000000
0000000000000000003772ACE6FFFFFFFFC98F551B053F79B3EDFFFFFFFFFFFFFFFFFFFFFFFFFAC0864C120E4883BCF7FFFFFFF2B87D43090000000000000000
0000000000000000346EA8E3FFFFFFFFCC92581E023C76B0EAFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BD83480E114B86C0FAFFFFFFEFB57A400600000000000000
00000000000000316BA5DFFFFFFFFFD0955B21003973ADE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B97F460B144E87C3FDFFFFFFEBB1783D03000000000000
0000000000002E68A2DCFFFFFFFFD2985F24003670AAE4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B77C420818528CC6FFFFFFFFE8AE743A000000000000
00000000002B659FD9FFFFFFFFD59B612700326DA7E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB3793F041B558FC9FFFFFFFFE5AB71360000000000
0000000021629CD6FFFFFFFFD99F642A002F69A3DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAB0773C021E5892CDFFFFFFFFE2A86D3300000000
000000003382D2FFFFFFFFDCA2672D002C66A0DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AD733800215C96D0FFFFFFFFDFA4661D000000
000000002D74B4F1FFFFDFA56B310029639DD7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4A96F3500245F99D3FFFFFFFFC47424000000
00000000044281BEFCE2A86E340026609AD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0A66C320028629CD6FFFFD2945612000000
00000000000F4D8CC9AB713700235E97D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDA3692F002B65A0D9DDA0612400000000
0000000000001B5886733A00165A94CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAA0662B002F68A3AA6C2F0000000000
000000000000001D363102001F6FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD79D60130032656839000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFFFFFE1DCDCDCDCDCDCDCDCDCE5FFFFFFFFFFFFFFFFFFFFFFFFB565150000181800000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFFFCC968C8C8C8C8C8C8C8C8C9AD6FFFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF3A45B3C3C3C3C3C3C3C3C3C65B1FFFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001F6FBFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000D5DADFDFFFFFFFFFFFFFFFFFFFFB565150000000000000000000000
0000000000000000000000001D6CB4C7C7C7C7C7C7C7C7C7C7C7A05000000000000000000D5DADC7C7C7C7C7C7C7C7C7C7C7AC62130000000000000000000000
0000000000000000000000000542747777777777777777777777774E00000000000000000C5A777777777777777777777777713B000000000000000000000000
000000000000000000000000000924272727272727272727272727170000000000000000001F2727272727272727272727272303000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000F202F32353735322C1C0C0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000162E3E4D5D6E7E82858785827B6A5A4A3B2B1000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000221405E7C8C9DADBCCCD2D5D7D5D2C9BAAA9A8978593A1B0000000000000000000000000000000000000000
000000000000000000000000000000000000082C4C698BA9C9DBEBFBFFFFFFFFFFFFFFFFFFF8E7D7C2A384654526000000000000000000000000000000000000
00000000000000000000000000000000001D4A7697B5D4F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDCEAE916E411400000000000000000000000000000000
0000000000000000000000000000000633608DB9DFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D9B184562A000000000000000000000000000000
00000000000000000000000000001B4874A2CFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C6996C3F1200000000000000000000000000
000000000000000000000000001D568BB8E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBAE824B12000000000000000000000000
0000000000000000000000001D568FC7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1BC844B120000000000000000000000
00000000000000000000001D568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4BC844B1200000000000000000000
000000000000000000001B568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4BC844B0E000000000000000000
00000000000000000006498BC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4BC7D3B000000000000000000
0000000000000000003374B8FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECAB68260000000000000000
00000000000000001D60A2E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD795521000000000000000
00000000000000084A8DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27F3C00000000000000
000000000000002C76B9FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEAD681E000000000000
000000000000024C97DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1873D000000000000
0000000000002169B5FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFA65C120000000000
000000000000408BD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC57B310000000000
0000000000165EA9F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE49C510700000000
00000000002E7DC8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA6C1E00000000
00000000003E8CDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB7D2E00000000
00000000004D9DEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB8D3E00000000
000000000F5DADFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB9D4E00000000
00000000206EBCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAD5D10000000
000000002F7ECDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD6E1F000000
000000003282D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27222000000
000000003585D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC57525000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003584D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC47424000000
000000003282D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27222000000
000000002C7BC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB96B1D000000
000000001C6ABAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8AA5A0C000000
000000000C5AAAF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE89A4B00000000
00000000004A9AE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8893B00000000
00000000003B89D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8792B00000000
00000000002B78C2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB4681B00000000
00000000001059A3EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE964A0100000000
0000000000003A84CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF742B0000000000
0000000000001B65AEF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAA1560C0000000000
000000000000004591D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA8037000000000000
00000000000000266EB0F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6A36117000000000000
00000000000000004184C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB9763400000000000000
0000000000000000155699DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE8C4A0700000000000000
0000000000000000002A6CAEF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4A15F1C0000000000000000
000000000000000000003F82BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B17432000000000000000000
00000000000000000000124B84BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B1784005000000000000000000
0000000000000000000000124B84BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B178400700000000000000000000
000000000000000000000000124B84BCEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4B17840070000000000000000000000
00000000000000000000000000124B7DABD7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCEA1744007000000000000000000000000
00000000000000000000000000000E3B6895C2EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6B98C5F320500000000000000000000000000
0000000000000000000000000000000026527FADD1EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9CAA3764A1C000000000000000000000000000000
0000000000000000000000000000000000103D6887A6C5E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDEBFA18061340700000000000000000000000000000000
000000000000000000000000000000000000001E3D5C7C9CBACBDBEBFBFFFFFFFFFFFFFFF8E8D8C8B49674563717000000000000000000000000000000000000
0000000000000000000000000000000000000000001231516C7D8D9DADBDC2C5C7C4C2BAAA9A8979684A2B0C0000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000071E2E3E4E5D6E72757774726B5A4B3B2B1B0100000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000101F22252724221D0C000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000015454D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D481B00000000
0000000048869D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8C5004000000
0000000454A4EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9AB5B0B000000
000000004D8EA9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9935506000000
000000001D5059595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959522200000000
00000000000209090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909040000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000052F36363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636310A00000000
000000003D76868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686867B4200000000
0000000454A4D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6AB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
00000002519EBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFA35709000000
000000002D646F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F683200000000
0000000000181F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1A0000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000019202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201B0000000000
000000002E6470707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070683300000000
00000002519FC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0A45809000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B000000
0000000454A4D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5AB5B0B000000
000000003C77858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585857A4200000000
00000000042D35353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535300900000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000016373737373737373737373737373737373737373737372C000000000000000000000000
000000000000000000000000000000000000000000000000000000124D878787878787878787878787878787878787878787876F330000000000000000000000
00000000000000000000000000000000000000000000000000000E4883BED7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D79E4E0000000000000000000000
0000000000000000000000000000000000000000000000000009447EB9F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
000000000000000000000000000000000000000000000000043F7AB5F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000000000000000000000000000003A74B0EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000000000000000000000000003570ABE5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000000000000000000000000306BA6E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000000000000000000000002C67A1DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
000000000000000000000000000000000000000027629DD8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000000000000000000225E98D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000000000000000001D5893CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
000000000000000000000000000000000019548FC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000000000000144F8AC4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000000000000F4A85C0FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000000000A4680BBF6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000000006417BB7F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
000000000000000000000000013C77B2EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
0000000000000000000000003772ADE8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000F5FA8E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9EAEAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB89A9AB8F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCBD7E4A4A7FBFFDFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB8B4C0E0E4E8DCCFFFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFD99A5A1B00001D5C9BDBFFFFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFE7A86829000000002A6AA9E8FFFFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFF5B676370000000000003978B7F6FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFC4854506000000000000084786C4FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFD29353140000000000000000165494D4FFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFE0A16123000000000000000000002463A1E1FFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFEEAE6F300000000000000000000000003271B0EFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFCBD7E3E00000000000000000000000000013F7FBFFDFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFCB8B4C0E00000000000000000000000000000E4E8DCCFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFD99A5A1B000000000000000000000000000000001D5C9BDBFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFE7A868290000000000000000000000000000000000002A6AAAE8FFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFBC783800000000000000000000000000000000000000003979BEFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFB569434343434335000000000000000000003643434343436AB6FFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFD49E93939393935E0E0000000000000000106093939393939ED6FFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFEBE3E3E3E3AE5E0E00000000000000001060B0E3E3E3E3EBFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFEAE5E0E00000000000000001060B0FFFFFFFFFFFFFFFFFFFFF0A0500000000000000000000000
00000000000000000000000D5CA6C8C8C8C8C8C8C8C8C8C8C8C8AE5E0E00000000000000001060B0C8C8C8C8C8C8C8C8C8C8C89A4C0000000000000000000000
000000000000000000000000356C787878787878787878787878785A0D00000000000000000E5C78787878787878787878787864290000000000000000000000
0000000000000000000000000022282828282828282828282828282000000000000000000000202828282828282828282828281E000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000122B313737373737373737373737352F250600000000000000000000000000000000000000000000
000000000000000000000000000000000000000000001D3C5C7B818787878787878787878787857F6E5030110000000000000000000000000000000000000000
000000000000000000000000000000000000000011466686A5C6D1D7D7D7D7D7D7D7D7D7D7D7D5CFB9997A5B3500000000000000000000000000000000000000
00000000000000000000000000000000000000114A82B1D0EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4C5A66D35000000000000000000000000000000000000
000000000000000000000000000000000000114A82BBF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEA66D350000000000000000000000000000000000
0000000000000000000000000000000000034982BBF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEA66D3000000000000000000000000000000000
0000000000000000000000000000000000226AB5F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE994F06000000000000000000000000000000
0000000000000000000000000000000000418BD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB96D25000000000000000000000000000000
000000000000000000000000000000001760AAF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD88F45000000000000000000000000000000
000000000000000000000000000000003380C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8AD63150000000000000000000000000000
000000000000000000000000000000003989D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B0000000000000000000000000000
000000000000000000000000000000003F8FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC171210000000000000000000000000000
000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC272220000000000000000000000000000
000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC272220000000000000000000000000000
000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC272220000000000000000000000000000
000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC272220000000000000000000000000000
000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC272220000000000000000000000000000
000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC272220000000000000000000000000000
000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC272220000000000000000000000000000
000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC272220000000000000000000000000000
000000000000000000000000000008174090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC272221500000000000000000000000000
000000000000000000000000013251676A90E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2726A6245230000000000000000000000
0000000000000000000000003A729DB7BAC2F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBABAAE915E2400000000000000000000
0000000000000000000000236BABE4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8CF955108000000000000000000
0000000000000000000000428DD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA6F26000000000000000000
00000000000000000000004D9DEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF7F2F000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004E9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08030000000000000000000
00000000000000000000004793DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC07529000000000000000000
00000000000000000000002971B5EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD89F560D000000000000000000
000000000000000000000007437BA8C5C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BB9E672E00000000000000000000
0000000000000000000000000B3F5B757777777777777777777777777777777777777777777777777777777777777777777770522D0000000000000000000000
00000000000000000000000000001425272727272727272727272727272727272727272727272727272727272727272727272208000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000028592D000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000037876A370300000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787A874400E000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7B17D4A170000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7EFBB87542100000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFF8C5915F2A000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFFFFFCF9B68340100000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFFFFFFFD9A5723E0B000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFFFFFFFFFE2AF7B48140000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFFFFFFFFFFFECB985521E00000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFFFFFFFFFFFFFF6C38F5C28000000000000000000000000000000000000
000000001A40404040404040404040404040404040404040404040404040404087D7FFFFFFFFFFFFFFFFFFCC9965320000000000000000000000000000000000
000000003787909090909090909090909090909090909090909090909090909097DBFFFFFFFFFFFFFFFFFFFFD6A36F3C08000000000000000000000000000000
000000003787D7E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E1FFFFFFFFFFFFFFFFFFFFFFFFE0AC7946110000000000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B6834F1C00000000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C08D5925000000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDCA96632F0000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4A06C3906000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDAA7843100000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B4804C1A00000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1BE8B5623000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC794602C0000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD19E6A3601000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBA76E1E000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAB78440C000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5A26E3B0700000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC986431000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C28F5B2700000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB985511E0000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3AF7B4814000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9A6723E0B00000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD09C6835010000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC6935F2B00000000000000000000000000
000000003787D7FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFBFFFFFFFFFFFFFFFFFFFFFFFFF1BD8955220000000000000000000000000000
000000003787AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADE6FFFFFFFFFFFFFFFFFFFFE7B37F4C18000000000000000000000000000000
000000002D5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A87D7FFFFFFFFFFFFFFFFFFDDAA76420F00000000000000000000000000000000
00000000000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A3787D7FFFFFFFFFFFFFFFFD4A06C39050000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFFFFFFFFFFFFECA96632F00000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFFFFFFFFFF4C18D59260000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFFFFFFFEBB783501C000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFFFFFE1AE7A471200000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFFFD8A4703D090000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7FFCE9A673300000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787D7C5915E290000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003787BB875320000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000037877E4A1600000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003471400E0000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000042104000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000F1F2F32353735322C1C0C0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000152D3D4D5D6D7E82858785827B6A5A4A3A2A0F00000000000000000000000000000000000000000000
000000000000000000000000000000000000000001213F5D7C8C9DADBCCCD2D5D7D5D2C9B9AA99897859391A0000000000000000000000000000000000000000
000000000000000000000000000000000000072C4B698AA9C8DAEAFBFFFFFFFFFFFFFFFFFFF7E7D7C3A383624526000000000000000000000000000000000000
00000000000000000000000000000000001C497496B4D4F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECCDAE906D401400000000000000000000000000000000
00000000000000000000000000000005325F8CB8DEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D8B0835529000000000000000000000000000000
00000000000000000000000000001A4874A1CEFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C4986B3E1000000000000000000000000000
000000000000000000000000001C558BB7E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAAE814A11000000000000000000000000
0000000000000000000000001C558DC6F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0BB834A110000000000000000000000
00000000000000000000001C558DC6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3BB834A1100000000000000000000
000000000000000000001A558DC6FFFFFFFFFFFFFFFFFFFFFFFFFFEFDFCFC0BBB9BCC2D2E2F2FFFFFFFFFFFFFFFFFFFFFFFFF3BB834A0E000000000000000000
00000000000000000005488BC6FFFFFFFFFFFFFFFFFFFFFFF8D9BAA19180706B696C738394A5C1E0FFFFFFFFFFFFFFFFFFFFFFF3BB7C3B000000000000000000
0000000000000000003274B7F9FFFFFFFFFFFFFFFFFFFED2AF916F514232221B191C253545577697B5DBFFFFFFFFFFFFFFFFFFFFECAA67250000000000000000
00000000000000001C5FA1E4FFFFFFFFFFFFFFFFFFE9BC90634627070000000000000000000D2D4C6B99C4F2FFFFFFFFFFFFFFFFFFD694510F00000000000000
0000000000000007498CCEFFFFFFFFFFFFFFFFFFD9A77A4D20000000000000000000000000000002295583B0E4FFFFFFFFFFFFFFFFFFC17E3C00000000000000
000000000000002C74B8FBFFFFFFFFFFFFFFFFD9A067380B0000000000000000000000000000000000144073ABE4FFFFFFFFFFFFFFFFEDAC661D000000000000
000000000000014B96DEFFFFFFFFFFFFFFFFD9A0672F0000000000000000000000000000000000000000023A73ABE4FFFFFFFFFFFFFFFFD0863B000000000000
0000000000002169B4FEFFFFFFFFFFFFFFE9A7672F00000000000000000000000000000000000000000000023A73B4F6FFFFFFFFFFFFFFEFA55B120000000000
0000000000003F8AD3FFFFFFFFFFFFFFFEBC7A38000000000000000000000000000000000000000000000000024587C9FFFFFFFFFFFFFFFFC57B310000000000
0000000000155DA9F3FFFFFFFFFFFFFFD2904D0B00000000000000000000000000000000000000000000000000185A9DDFFFFFFFFFFFFFFFE499500700000000
00000000002D7CC8FFFFFFFFFFFFFFF8AF63200000000000000000000000000000000000000000000000000000002E73BDFFFFFFFFFFFFFFFFB96C1E00000000
00000000003D8CDAFFFFFFFFFFFFFFD991461F36363636363636363636363636363636363636363636363636363514549EE8FFFFFFFFFFFFFFCB7C2E00000000
00000000004D9DEAFFFFFFFFFFFFFFBA6F274A8686868686868686868686868686868686868686868686868686853A357FC9FFFFFFFFFFFFFFDB8D3E00000000
000000000F5DADFBFFFFFFFFFFFFEFA151082462A1D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D49555171661B1FFFFFFFFFFFFFFEB9D4E00000000
000000001F6DBCFFFFFFFFFFFFFFDF91420000316FAEEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0A16224000351A1EFFFFFFFFFFFFFFBAD5D10000000
000000002F7ECDFFFFFFFFFFFFFFCF80320000003D7BBBF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDAE6F310000004290DEFFFFFFFFFFFFFFBD6E1F000000
000000003282D2FFFFFFFFFFFFFFC070220000000C4A88C8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFABB7C3D000000003280CFFFFFFFFFFFFFFFC27222000000
000000003585D5FFFFFFFFFFFFFFBB6B1B00000000195796D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8894A0C000000002B7CCBFFFFFFFFFFFFFFC57525000000
000000003787D7FFFFFFFFFFFFFFB9691900000000002564A2E1FFFFFFFFFFFFFFFFFFFFFFFFFFD59657190000000000297AC9FFFFFFFFFFFFFFC77727000000
000000003584D5FFFFFFFFFFFFFFBC6C1C0000000000003271AFEEFFFFFFFFFFFFFFFFFFFFFFE1A364250000000000002C7DCCFFFFFFFFFFFFFFC47424000000
000000003281D2FFFFFFFFFFFFFFC27325000000000000013E7DBDFBFFFFFFFFFFFFFFFFFFEFB07132000000000000003583D2FFFFFFFFFFFFFFC27222000000
000000002C7BC9FFFFFFFFFFFFFFD28335000000000000000E4C8BC9FFFFFFFFFFFFFFFFFBBD7E3F01000000000000004594E2FFFFFFFFFFFFFFBA6A1C000000
000000001C6ABAFFFFFFFFFFFFFFE2944500000000000000001A5897D6FFFFFFFFFFFFFFC98B4C0E000000000000000655A4F2FFFFFFFFFFFFF8AA5A0C000000
000000000C5AAAF7FFFFFFFFFFFFF2A5570D00000000000000002665A4E3FFFFFFFFFFD798591A00000000000000001C65B4FFFFFFFFFFFFFFE89A4A00000000
00000000004A99E7FFFFFFFFFFFFFFC1772D0000000000000000003472B1F0FFFFFFE3A466260000000000000000003B85CFFFFFFFFFFFFFFFD7893B00000000
00000000003A89D7FFFFFFFFFFFFFFE0974C02000000000000000002407FBEFCFFF0B17234000000000000000000115BA5EEFFFFFFFFFFFFFFC7792B00000000
00000000002A78C3FFFFFFFFFFFFFFFFB56B290000000000000000000E4D8CCBFDBE7F4002000000000000000000377AC5FFFFFFFFFFFFFFFDB3681A00000000
00000000000F59A3ECFFFFFFFFFFFFFFDB9955140000000000000000001C5A99CB8C4D0F0000000000000000002163A6E8FFFFFFFFFFFFFFDD954A0000000000
0000000000003983CDFFFFFFFFFFFFFFFFC48340020000000000000000002867995A1C0000000000000000000D4D90D2FFFFFFFFFFFFFFFFBE742B0000000000
0000000000001A62AEF8FFFFFFFFFFFFFFF2B0733A02000000000000000000355B280000000000000000000D467EBEFFFFFFFFFFFFFFFFE99F550B0000000000
000000000000004590D8FFFFFFFFFFFFFFFFE4AB733A020000000000000000000B0000000000000000000D467EB7EFFFFFFFFFFFFFFFFFC98036000000000000
00000000000000266DB0F2FFFFFFFFFFFFFFFFE4AB7345180000000000000000000000000000000000214E7EB7EFFFFFFFFFFFFFFFFFE5A26017000000000000
00000000000000004083C4FFFFFFFFFFFFFFFFFFE4B4875A2E0A0000000000000000000000000011376390BDEFFFFFFFFFFFFFFFFFFAB8753300000000000000
0000000000000000145598DBFFFFFFFFFFFFFFFFFFF6C99D735435160300000000000000061C3B5B7AA6D2FFFFFFFFFFFFFFFFFFFFCD8B490600000000000000
000000000000000000296BAEF0FFFFFFFFFFFFFFFFFFFFDFBD9E7F615142322B292C3545546585A5C5E8FFFFFFFFFFFFFFFFFFFFE3A05E1B0000000000000000
000000000000000000003E81BBF3FFFFFFFFFFFFFFFFFFFFFFE8C9B1A190807B797C8394A4B4CFEEFFFFFFFFFFFFFFFFFFFFFFE8B07431000000000000000000
00000000000000000000104A83BBF3FFFFFFFFFFFFFFFFFFFFFFFFFFEFDFCFCBC9CCD2E2F2FFFFFFFFFFFFFFFFFFFFFFFFFFE8B0773E04000000000000000000
0000000000000000000000114A83BBF3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8B0773E0600000000000000000000
000000000000000000000000114A83BBECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3B0773E060000000000000000000000
00000000000000000000000000114A7CAAD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFACDA0743E06000000000000000000000000
00000000000000000000000000000E3B6794C1EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5B88B5E310400000000000000000000000000
0000000000000000000000000000000025517EACD0EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9C9A275491B000000000000000000000000000000
00000000000000000000000000000000000F3C6686A5C5E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDBEA18060330600000000000000000000000000000000
000000000000000000000000000000000000001D3B5B7B9CB9CBDBEBFBFFFFFFFFFFFFFFF8E8D7C7B39574553616000000000000000000000000000000000000
0000000000000000000000000000000000000000001231506C7C8D9DADBDC2C5C7C4C2BAAA9A8979684A2B0B0000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000071E2E3E4E5D6E72757774726A5A4A3B2B1A0000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000101F22252724221C0C000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005080A0C000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000001B3A55585A5C4B3806000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000C426584A4A8AAAC997020000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000E467DAECEEDF8E5AD743C03000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000457FB7EEFFFFE5AD743C0300000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000286CB3F0FFFFE5AD743C030000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000094F95DBFFFFE5AD743C03000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000226EBCFFFFFFC7773C0300000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000003885D2FFFFFFC777270000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000014E9CE8FFFFFFC777270000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000A59A9F9FFFFFFC777270000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000001160B0FFFFFFFFC77727000000000000000000000000192E090000
000000000000000000000000000000000000000000000000000000000000000000000000001767B7FFFFFFFFC7772700000000000000000000001A527A2C0000
000000000000000000000000000000000000000000000000000000000000000000000000001161B1FFFFFFFFC77727000000000000000000001A528B8D3F0000
000000000000000000000000000000000000000000000000000000000000000000000000000959A9F9FFFFFFC777270000000000000000001A528BC39B4B0000
00000000000000000000000000000000000000000000000000000000000000000000000000004E9CE8FFFFFFC7772700000000000000001A528BC3E999490000
000000000000000000000000000000000000000000000000000000000000000000000000001A5290DBFFFFFFC777373737373737373737528BC3FCE797470000
0000000000000000000000000000000000000000000000000000000000000000000000001A538BC3FCFFFFFFC8878787878787878787878BC3FCFFD890430000
00000000000000000000000000000000000000000000000000000000000000000000001A538BC4FCFFFFFFFFF1D7D7D7D7D7D7D7D7D7D7D8FCFFFFB96E250000
000000000000000000000000000000000000000000000000000000000000000000001A538BC4FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD79B50060000
0000000000000000000000000000000000000000000000000000000000000000001B538BC4FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAA0662C000000
00000000000000000000000000000000000000000000000000000000000000001B538CC4FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECC49D682F00000000
000000000000000000000000000000000000000000000000000000000000001B548CC5FDFFFFFFFFFFFFFFFFFFE6CADEEAF2F5EFE8D5BEA67F562F0000000000
0000000000000000000000000000000000000000000000000000000000001B548CC5FDFFFFFFFFFFFFFFFFFFE5AD7A919AA2A69F9888715B3912000000000000
00000000000000000000000000000000000000000000000000000000001B548CC5FDFFFFFFFFFFFFFFFFFFE5AD743C414A52564F483A240E0000000000000000
000000000000000000000000000000000000000000000000000000001C548DC5FDFFFFFFFFFFFFFFFFFFE5AD743C030000030600000000000000000000000000
0000000000000000000000000000000000000000000000000000001B548DC5FEFFFFFFFFFFFFFFFFFFE5AD743C03000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000001B548DC5FEFFFFFFFFFFFFFFFFFFE5AD743C0300000000000000000000000000000000000000
000000000000000000000000000000000000000000000000001B548CC5FEFFFFFFFFFFFFFFFFFFE5AD743C030000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000001B548CC5FDFFFFFFFFFFFFFFFFFFE5AD743C03000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000001B538CC5FDFFFFFFFFFFFFFFFFFFE5AD743C0300000000000000000000000000000000000000000000
000000000000000000000000000000000000000000001A538CC5FDFFFFFFFFFFFFFFFFFFE5AD743C030000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000001A538BC4FDFFFFFFFFFFFFFFFFFFE5AD743C03000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000001A538BC4FCFFFFFFFFFFFFFFFFFFE5AD743C0300000000000000000000000000000000000000000000000000
000000000000000000000000000000090703001A538BC4FCFFFFFFFFFFFFFFFFFFE5AD743C030000000000000000000000000000000000000000000000000000
0000000000000000000000142F3D4B5957534D528BC4FCFFFFFFFFFFFFFFFFFFE5AD743C03000000000000000000000000000000000000000000000000000000
00000000000000000023415E7C8C9BA9A7A39B90C3FCFFFFFFFFFFFFFFFFFFE5AD743C0300000000000000000000000000000000000000000000000000000000
00000000000000113D6A8DA9C6DBE9F7F7F3E8DBFCFFFFFFFFFFFFFFFFFFE5AD743C030000000000000000000000000000000000000000000000000000000000
000000000000255380AED6F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5AD743C03000000000000000000000000000000000000000000000000000000000000
00000000001F5B96C3EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5AD743C0300000000000000000000000000000000000000000000000000000000000000
00000000195490CCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5AD743C030000000000000000000000000000000000000000000000000000000000000000
00000000438AC5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5AD743C03000000000000000000000000000000000000000000000000000000000000000000
0000001961ADF6FFFFE5C7C7C7C7C7C7C7C7C7C8F1FFFFFFFFE6AD743C0300000000000000000000000000000000000000000000000000000000000000000000
0000003982CCFFFFE5AD77777777777777777787D7FFFFFFFFCA7A3C030000000000000000000000000000000000000000000000000000000000000000000000
0000004F9FECFFE5AD743C272727272727273787D7FFFFFFFFDD8F40000000000000000000000000000000000000000000000000000000000000000000000000
00000353A3F3E5AD743C03000000000000003787D7FFFFFFFFE49444000000000000000000000000000000000000000000000000000000000000000000000000
00000757A7E5AD743C0300000000000000003787D7FFFFFFFFE79747000000000000000000000000000000000000000000000000000000000000000000000000
00000B5BABAD743C030000000000000000003787D7FFFFFFFFE59646000000000000000000000000000000000000000000000000000000000000000000000000
0000004A99743C03000000000000000000003787D7FFFFFFFFD68839000000000000000000000000000000000000000000000000000000000000000000000000
00000038703C0300000000000000000000003787D7FFFFFFFFC97A2B000000000000000000000000000000000000000000000000000000000000000000000000
0000000620030000000000000000000000003787D7FFFFFFFCB1651C000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000003787D7FFFFFFDF954900000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000001A528BD8FFFFFFC2762C00000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000001A528BC3FCFFFFD997530F00000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000001A528BC3FCFFFFEFAE6A280000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000001A528BC3FCFFFFEBB6803D000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000001A528BC3FCFFFFE0AF7A440F000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000019528BC3E6E2D7B797733E0900000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000002E7A8D9A96928E6C4E2E020000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000092C3F4A46423E240500000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000437551A000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000E41747727000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000174B7EB27727000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000215488BCC77727000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000002B5E92C5F9C77727000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000135689CCFFFFFC77727000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000B3E72A5D9FFFFFFC77727000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000014487CAFE3FFFFFFFFC77727000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000001F5286B9EDFFFFFFFFFFC77727000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000285C8FC3F6FFFFFFFFFFFFC77727000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000326699CDFFFFFFFFFFFFFFFFC77727000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000093C6FA3D7FFFFFFFFFFFFFFFFFFC77740404040404040404040404040404040404040404040404040403E0E000000
00000000000000000000000000000000124679ADE0FFFFFFFFFFFFFFFFFFFFCB9090909090909090909090909090909090909090909090909090907727000000
0000000000000000000000000000001C4F83B7EAFFFFFFFFFFFFFFFFFFFFFFFDE0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0C77727000000
000000000000000000000000000026598DC1F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
00000000000000000000000000306397CAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000000000000000000006396DA1D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
00000000000000000000104377AADEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
0000000000000000001A4D80B4E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000000000000024578BBEF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000000000002D6094C8FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000000003376A9ED2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000000D4174A8DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000002E7EB2E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
00000000194E82B6E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
0000000000114479ACDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000000000083B6FA2D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
0000000000000000316599CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000000000000000285C8FC3F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000000000000000001F5286B9EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000000000000000000015487CB0E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
0000000000000000000000000C3F73A6DAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000000000000000000000000235699DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
0000000000000000000000000000002C5F93C7FAFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAC77727000000
00000000000000000000000000000000235687BEF1FFFFFFFFFFFFFFFFFFFFD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7727000000
0000000000000000000000000000000000194C80B4E8FFFFFFFFFFFFFFFFFFC7775A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A571F000000
0000000000000000000000000000000000000F4378AADEFFFFFFFFFFFFFFFFC777270A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0900000000
00000000000000000000000000000000000000063A6DA1D5FFFFFFFFFFFFFFC77727000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000306397CBFEFFFFFFFFFFC77727000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000265A8EC2F5FFFFFFFFC77727000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000001D5185B8ECFFFFFFC77727000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000013477AAEE2FFFFC77727000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000A3D71A5D9FFC77727000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000034679BCFC77727000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000002A5E92C57727000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000002154877727000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000174B6A24000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000D1F00000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000001E31373737311D00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000225B80878787805A21000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000195B94CCD7D7D7CB925A170000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000C00002A79C9FFFFFFFFFFC7772800000D0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000C2D475C26002F7FCFFFFFFFFFFFCE7E2E00275D472C0B0000000000000000000000000000000000000000
000000000000000000000000000000000000000A2F5377948131002F7FCFFFFFFFFFFFCE7E2E0033839376522E0A000000000000000000000000000000000000
0000000000000000000000000000000000002D52769ABFD18131002F7FCFFFFFFFFFFFCE7E2E003383D3BE9974512D0000000000000000000000000000000000
0000000000000000000000000000000011406F99BDE2FFD18131002F7FCFFFFFFFFFFFCE7E2E003383D3FFE0BC996E3F10000000000000000000000000000000
000000000000000000000000000000235281B0DFFFFFFFD18131002F7FCFFFFFFFFFFFCE7E2E003383D3FFFFFFDEAE8051220000000000000000000000000000
00000000000000000000000000002C6493C3F1FFFFFFFFD18131002F7FCFFFFFFFFFFFCE7E2E003383D3FFFFFFFFF0C292622A00000000000000000000000000
000000000000000000000000002C649DD4FFFFFFFFFFFFD18131002F7FCFFFFFFFFFFFCE7E2E003383D3FFFFFFFFFFFFD39C632B000000000000000000000000
0000000000000000000000002D659DD6FFFFFFFFFFFFFFD18131002F7FCFFFFFFFFFFFCE7E2E003383D3FFFFFFFFFFFFFFD49C642C0000000000000000000000
000000000000000000000023639ED6FFFFFFFFFFFFFFFFD18131002F7FCFFFFFFFFFFFCE7E2E003383D3FFFFFFFFFFFFFFFFD59D612100000000000000000000
00000000000000000000125293D3FFFFFFFFFFFFFFFFFFD18131002F7FCFFFFFFFFFFFCE7E2E003383D3FFFFFFFFFFFFFFFFFFD2925111000000000000000000
000000000000000000014182C3FFFFFFFFFFFFFFFFFFF3CA8131002F7FCFFFFFFFFFFFCE7E2E003383CBF4FFFFFFFFFFFFFFFFFFC18140000000000000000000
0000000000000000002D71B2F1FFFFFFFFFFFFFFFFE2AE855B23002F7FCFFFFFFFFFFFCE7E2E00255C86AFE3FFFFFFFFFFFFFFFFF1B0702C0000000000000000
00000000000000000B5299E0FFFFFFFFFFFFFFFFDFA871401700002F7FCFFFFFFFFFFFCE7E2E0000184172A9E1FFFFFFFFFFFFFFFFDF99510A00000000000000
00000000000000003077BEFFFFFFFFFFFFFFFFDDA66E37000000002F7FCFFFFFFFFFFFCE7E2E000000013870A7DEFFFFFFFFFFFFFFFFBC762F00000000000000
000000000000000E559DE3FFFFFFFFFFFFFFDEA36C3500000000002F7FCFFFFFFFFFFFCE7E2E0000000000366DA4E0FFFFFFFFFFFFFFE29B530D000000000000
000000000000002D78C2FFFFFFFFFFFFFFF9B46F320000000000002F7FCFFFFFFFFFFFCE7E2E0000000000003371B6FAFFFFFFFFFFFFFFC0772B000000000000
000000000000004693DEFFFFFFFFFFFFFFD08B46020000000000002F7FCFFFFFFFFFFFCE7E2E00000000000003488DD1FFFFFFFFFFFFFFDC9144000000000000
000000000000145FACF7FFFFFFFFFFFFEAA7611D000000000000002F7FCFFFFFFFFFFFCE7E2E000000000000001E63A9ECFFFFFFFFFFFFF6AA5D120000000000
0000000000002D79C5FFFFFFFFFFFFFFC17C3800000000000000002F7FCFFFFFFFFFFFCE7E2E0000000000000000397DC3FFFFFFFFFFFFFFC3772B0000000000
0000000000004190DFFFFFFFFFFFFFF7AB5C1000000000000000002F7FCFFFFFFFFFFFCE7E2E0000000000000000115EABF8FFFFFFFFFFFFDD8E3F0000000000
0000000000004D9DECFFFFFFFFFFFFE195470000000000000000002F7FCFFFFFFFFFFFCE7E2E0000000000000000004996E3FFFFFFFFFFFFEA9B4B0000000000
00000000000C5AAAF9FFFFFFFFFFFFCB7E310000000000000000002D7DCCFFFFFFFFFFCB7C2C0000000000000000003380CDFFFFFFFFFFFFF7A8580A00000000
00000000001967B7FFFFFFFFFFFFFFB5681B000000000000000000226CA8E0F4F4F4DFA66B210000000000000000001D69B7FFFFFFFFFFFFFFB5661600000000
00000000002373C3FFFFFFFFFFFFF7A7570700000000000000000000366F9CA4A4A49C6E35000000000000000000000858A8F8FFFFFFFFFFFFC1712100000000
00000000002575C5FFFFFFFFFFFFF3A353030000000000000000000000364C5454544C3400000000000000000000000555A5F5FFFFFFFFFFFFC3732300000000
00000000002777C7FFFFFFFFFFFFEF9F4F0000000000000000000000000000040404000000000000000000000000000151A1F1FFFFFFFFFFFFC6762600000000
00000000002575C5FFFFFFFFFFFFF2A2520200000000000000000000000000000000000000000000000000000000000353A3F3FFFFFFFFFFFFC3732300000000
00000000002272C2FFFFFFFFFFFFF6A8580B00000000000000000000000000000000000000000000000000000000000C5AAAF8FFFFFFFFFFFFC0702000000000
00000000001D6BBAFFFFFFFFFFFFFFB8691B00000000000000000000000000000000000000000000000000000000001C6BBAFFFFFFFFFFFFFFB8691B00000000
00000000000D5BABF8FFFFFFFFFFFFC8792B00000000000000000000000000000000000000000000000000000000002D7CC9FFFFFFFFFFFFF6A9590B00000000
0000000000004B9AE8FFFFFFFFFFFFD88B3F0000000000000000000000000000000000000000000000000000000000428CDAFFFFFFFFFFFFE698490000000000
0000000000003B8AD8FFFFFFFFFFFFF3A95D150000000000000000000000000000000000000000000000000000001761ABF5FFFFFFFFFFFFD688390000000000
0000000000002B7AC8FFFFFFFFFFFFFFC87E350000000000000000000000000000000000000000000000000000003680CAFFFFFFFFFFFFFFC677290000000000
0000000000001A65B0FAFFFFFFFFFFFFE89E591700000000000000000000000000000000000000000000000000185A9FE9FFFFFFFFFFFFF8AE65190000000000
000000000000004792DBFFFFFFFFFFFFFFC88644010000000000000000000000000000000000000000000000034588CAFFFFFFFFFFFFFFD99145000000000000
000000000000002871BBFFFFFFFFFFFFFFF5B3703000000000000000000000000000000000000000000000003072B4F7FFFFFFFFFFFFFFBA6F26000000000000
0000000000000008529EE6FFFFFFFFFFFFFFE0A16830000000000000000000000000000000000000000000306AA1E2FFFFFFFFFFFFFFE59A5107000000000000
0000000000000000347DC6FFFFFFFFFFFFFFFFD9A1683001000000000000000000000000000000000002306AA1DBFFFFFFFFFFFFFFFFC57C3200000000000000
0000000000000000135699DBFFFFFFFFFFFFFFFFD9A1704417000000000000000000000000000000184572A1DBFFFFFFFFFFFFFFFFDA98541200000000000000
0000000000000000002A6CAEF1FFFFFFFFFFFFFFFFE0B386593515000000000000000000000016355A87B4E1FFFFFFFFFFFFFFFFEFAE6A280000000000000000
000000000000000000003F82C5FFFFFFFFFFFFFFFFFFF5C89E7F5D3F2B1B0A0200020B1B2B405E7F9EC9F7FFFFFFFFFFFFFFFFFFC3803D000000000000000000
00000000000000000000135498D6FFFFFFFFFFFFFFFFFFFFE8C8A98B796958524F5259697A8BAAC9E8FFFFFFFFFFFFFFFFFFFFD4965311000000000000000000
000000000000000000000028659DD6FFFFFFFFFFFFFFFFFFFFFFF3D8C8B8A8A29FA2A9B8C8D8F4FFFFFFFFFFFFFFFFFFFFFFD49C632700000000000000000000
0000000000000000000000002C659DD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F2EFF2F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFD49C632B0000000000000000000000
000000000000000000000000002C659DD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD49C632B000000000000000000000000
00000000000000000000000000002C6598C5F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C397632B00000000000000000000000000
000000000000000000000000000000285482AEDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAAE8153270000000000000000000000000000
00000000000000000000000000000000133F6C99C6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6C4986B3E12000000000000000000000000000000
0000000000000000000000000000000000002A567E9EBBDBFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DABB9D7D55290000000000000000000000000000000000
000000000000000000000000000000000000001334527192B0C8D8E8F8FFFFFFFFFFFFFFF8E8D8C8B09270523312000000000000000000000000000000000000
000000000000000000000000000000000000000000082847657A8A9AABBAC2C5C7C5C2BAAA9A8979664627080000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000001A2B3B4B5B6B72757775726A5A4B3B2B1A0000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000D1D22252725221C0C000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000312223033353734312C1C0B00000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000011F32425160708083858784817B6A5949392813000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000E2D4B688191A0B0BFCED3D5D7D4D1C9B9A99887765D3D1F00000000000000000000000000000000000000
000000000000000000000000000000000000001C3A597696B4CFDFEEFEFFFFFFFFFFFFFFFFFFF7E6D5C6A7886848290A00000000000000000000000000000000
000000000000000000000000000000000008346084A3C2DFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D1B294725326000000000000000000001000000000
000000000000000000000000000000001F4B77A3CFEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDCBC95683B0E0000000000000D3F5D1F000000
00000000000000000000000000000837628FBAE6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7AB7D512400000000174A7D7727000000
000000000000000000000000000A4279A7D1FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECC09366390300225488BB7727000000
0000000000000000000000000C447CB3E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5A9743C2C5F92C5C77727000000
00000000000000000000000E477EB5EDFFFFFFFFFFFFFFFFFFFFFFF8E8D9CABCB9B7BABFCFE0F0FFFFFFFFFFFFFFFFFFFFFFFFE5AD786A9DD0FFC77727000000
000000000000000000000C4880B8EFFFFFFFFFFFFFFFFFFFFFE8C9AC9A8B7B6C69676A708192A3B8D7F6FFFFFFFFFFFFFFFFFFFFE7B0A9DBFFFFC77727000000
000000000000000000003B7CB9F1FFFFFFFFFFFFFFFFFFE0BCA07F5F4B3C2C1C19171A223343536D8EACCBF0FFFFFFFFFFFFFFFFFFF5EFFFFFFFC77727000000
0000000000000000002668AAEBFFFFFFFFFFFFFFFFF4C99D71533517000000000000000000000524436081AED9FFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
0000000000000000135496D8FFFFFFFFFFFFFFFFE0B186592E09000000000000000000000000000000183E6A97C3EFFFFFFFFFFFFFFFFFFFFFFFC77727000000
00000000000000004182C4FFFFFFFFFFFFFFFFDDA66E431700000000000000000000000000000000000000285380B3E9FFFFFFFFFFFFFFFFFFFFC77727000000
00000000000000236BB1F1FFFFFFFFFFFFFFDBA46C3500000000000000000000000000000000000000000000114278AFF7FFFFFFFFFFFFFFFFFFC77727000000
00000000000000448ED7FFFFFFFFFFFFFFE3A16A3300000000000000000000000000000000000000000000001C4E82B5FCFFFFFFFFFFFFFFFFFFC77727000000
0000000000001A64ADF7FFFFFFFFFFFFF6B57332000000000000000000000000000000000000000000000026598CBFF2FFFFFFFFFFFFFFFFFFFFC77727000000
0000000000003A84CDFFFFFFFFFFFFFFC887450300000000000000000000000000000000000000000000316497CAFDFFFFFFFFFFFFFFFFFFFFFFC77727000000
0000000000125BA4EEFFFFFFFFFFFFE39B5817000000000000000000000000000000000000000000093B6FA1D5FFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
00000000002A78C6FFFFFFFFFFFFFFC37930000000000000000000000000000000000000000000003979A4A9AFB4BAC0C5CBD0D6DBE1E6ECF1F7C77727000000
00000000003B89D8FFFFFFFFFFFFECA35910000000000000000000000000000000000000000000002D4E54595F646A70757B80868B91969CA1A7AC7727000000
00000000004B9AE8FFFFFFFFFFFFCB823900000000000000000000000000022029322D1200000000000004090F141A20252B30363B41464C51575C5D1F000000
000000000E5BABF9FFFFFFFFFFFFB8691B00000000000000000000000018446D7882785D421100000000000000000000000000000000000001070C1000000000
000000001F6DBBFFFFFFFFFFFFF6A8580A0000000000000000000000245A87B3C8D1C4A883480D00000000000000000000000000000000000000000000000000
000000002E7ECCFFFFFFFFFFFFE597480000000000000000000000054B93CAF6FFFFFFF3B97D4200000000000000000000000000000000000000000000000000
000000003282D2FFFFFFFFFFFFD6863800000000000000000000002B71B8FEFFFFFFFFFFEFAE5F12000000000000000000000000000000000000000000000000
000000003585D5FFFFFFFFFFFFD3823300000000000000000000003E8EDEFFFFFFFFFFFFFFC17426000000000000000000000000000000000000000000000000
000000003787D7FFFFFFFFFFFFD0803000000000000000000000003E8EDEFFFFFFFFFFFFFFD18334000000000000000000000000000000000000000000000000
000000003484D4FFFFFFFFFFFFD3833300000000000000000000003E8ED6FFFFFFFFFFFFFFBD6F22000000000000000000000000000000000000000000000000
000000003281D2FFFFFFFFFFFFD8893B00000000000000000000002369B0F7FFFFFFFFFFE4A95B0E000000000000000000000000000000000000000000000000
000000002C7AC9FFFFFFFFFFFFE89A4B000000000000000000000000448BBCE9FFFFFFE4AE733800000000000000000000000000000000000000000000000000
000000001B69B8FFFFFFFFFFFFF9AB5B0E00000000000000000000001B4D7AA6B8C2B59B783D0200000000000000000000000000000000000000000000000000
000000000A58A8F6FFFFFFFFFFFFBB6C1F0000000000000000000000000A375D6872694E33060000000000000000000000000000000000000000000000000000
00000000004897E5FFFFFFFFFFFFD2893F00000000000000000000000000001019221E0300000000000000000000000000001C0F000000000000000000000000
00000000003886D4FFFFFFFFFFFFF2A95E1600000000000000000000000000000000000000000000000000000000000000256859391A00000000000000000000
00000000002774BEFFFFFFFFFFFFFFC98036000000000000000000000000000000000000000000000000000000000000034A92A3836245260700000000000000
00000000000B55A0E8FFFFFFFFFFFFE9A462200000000000000000000000000000000000000000000000000000000000286DB6ECCDAE906F5132120000000000
000000000000357EC7FFFFFFFFFFFFFFD2904E0D000000000000000000000000000000000000000000000000000000215E99DBFFFFF8D9BA9C7C5C3C00000000
000000000000145BA7F0FFFFFFFFFFFFFFBE7C3C04000000000000000000000000000000000000000000000000001A5692CEFFFFFFFFFFFFE5C59B5306000000
000000000000003D87D0FFFFFFFFFFFFFFECAD783E070000000000000000000000000000000000000000000000124F8BC7FFFFFFFFFFFFFFFFC0783000000000
000000000000001D65A7E8FFFFFFFFFFFFFFE7AF78400D0000000000000000000000000000000000000000001A4784C0FCFFFFFFFFFFFFFFD996520D00000000
00000000000000003779BBFDFFFFFFFFFFFFFFE9B17C512400000000000000000000000000000000000009335E89B8F4FFFFFFFFFFFFFFF0AE6A270000000000
00000000000000000A4B8DCEFFFFFFFFFFFFFFFFEBBF94673B18000000000000000000000000000000224D77A2CDF8FFFFFFFFFFFFFFFFC4823E000000000000
0000000000000000001D5FA0E2FFFFFFFFFFFFFFFFFFD6AB806044260D0000000000000000061C32496591BBE6FFFFFFFFFFFFFFFFFFD1955513000000000000
000000000000000000003172AEE5FFFFFFFFFFFFFFFFFFEDCBAD8F6F5A4B3C2C29272B2F3C52687F96ACD4FEFFFFFFFFFFFFFFFFFFD89C602400000000000000
00000000000000000000033D74ACE3FFFFFFFFFFFFFFFFFFFFF7D8BAAA9B8B7C79777B7F89A0B6CCE2F9FFFFFFFFFFFFFFFFFFFFDFA3672B0000000000000000
0000000000000000000000033B72AAE1FFFFFFFFFFFFFFFFFFFFFFFFF8E9D9CCC9C7CBCFD6ECFFFFFFFFFFFFFFFFFFFFFFFFFFD6A16E32000000000000000000
000000000000000000000000013870A8DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD99653100000000000000000000
0000000000000000000000000000366C99C4F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BF905C280000000000000000000000
0000000000000000000000000000002A5481AED8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD0A67B511F000000000000000000000000
00000000000000000000000000000000123E6996C0DEFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D6B68D62370C00000000000000000000000000
00000000000000000000000000000000000027527595B2D1EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBCFAE8E6A491E000000000000000000000000000000
000000000000000000000000000000000000000D2B496886A5BFCFDEEEFEFFFFFFFFFFFFFFFBEFE1CBB49F866543230200000000000000000000000000000000
000000000000000000000000000000000000000000001E3B5A718090A0B0BFC3C5C7C5C3B7ACA1957E68513B1C00000000000000000000000000000000000000
000000000000000000000000000000000000000000000000102232415160707375777573685C5145311B04000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000212202325272523190D0200000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000022A302C0500000000000000000000000000000000000000000000000000000000000F2F302500000000000000000000000000
000000000000000000000000073F728077440B000000000000000000000000000000000000000000000000000000174F7E806834000000000000000000000000
0000000000000000000000073F78B1D0B57C440B00000000000000000000000000000000000000000000000000174F88C0D0A56D340000000000000000000000
00000000000000000000073F78B1E9FFEEB57C440B0000000000000000000000000000000000000000000000174F88C0F9FFDEA56D3400000000000000000000
000000000000000000073F78B1E9FFFFFFEEB57C440B000000000000000000000000000000000000000000174F88C0F9FFFFFFDEA56D34000000000000000000
0000000000000000073F78B1E9FFFFFFFFFFEEB57C440B00000000000000000000000000000000000000174F88C0F9FFFFFFFFFFDEA56C340000000000000000
00000000000000073F78B1E9FFFFFFFFFFFFFFEEB57C440B0000000000000000000000000000000000174F88C0F9FFFFFFFFFFFFFFDEA56C3400000000000000
000000000000073F78B1E9FFFFFFFFFFFFFFFFFFEEB57C440B000000000000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFDEA56C34000000000000
0000000000073F78B1E9FFFFFFFFFFFFFFFFFFFFFFEEB57C440B00000000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFDEA56C340000000000
00000000023F78B1E9FFFFFFFFFFFFFFFFFFFFFFFFFFEEB57C440B0000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFDEA56C3400000000
000000002A72B1E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEB57C440B000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEA5651B000000
000000003080D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEB57C440B00000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC07020000000
000000002C77B5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEB57C440B0000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2A9681D000000
0000000005447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEB57C440B000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA713800000000
00000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEB57C440B00174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA71390000000000
0000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEB57C44174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA7139000000000000
000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEB57C4F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA713900000000000000
00000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEB587C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA71390000000000000000
0000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEED7F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA7139000000000000000000
000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA713800000000000000000000
00000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA71380000000000000000000000
0000000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA7138000000000000000000000000
000000000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA713800000000000000000000000000
00000000000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA71380000000000000000000000000000
0000000000000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA7138000000000000000000000000000000
000000000000000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA713800000000000000000000000000000000
00000000000000000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA71380000000000000000000000000000000000
0000000000000000000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA7138000000000000000000000000000000000000
00000000000000000000000000000000000000174F87D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77C440B000000000000000000000000000000000000
000000000000000000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B0000000000000000000000000000000000
0000000000000000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B00000000000000000000000000000000
00000000000000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B000000000000000000000000000000
000000000000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B0000000000000000000000000000
0000000000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B00000000000000000000000000
00000000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B000000000000000000000000
000000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B0000000000000000000000
0000000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B00000000000000000000
00000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B000000000000000000
000000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2C7EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B0000000000000000
0000000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA7CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B00000000000000
00000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA71447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B000000000000
000000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA71390B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B0000000000
0000000000174F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA713900000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C440B00000000
000000000F4F88C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA7139000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB57C4201000000
000000002E7EC0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA71390000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB26E1F000000
000000003080D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA713900000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC07020000000
000000002568A5DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA7139000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD29A5B16000000
0000000000346CA5DEFFFFFFFFFFFFFFFFFFFFFFFFFFE2AA71390000000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFD29A612800000000
000000000000346CA5DEFFFFFFFFFFFFFFFFFFFFFFE2AA713900000000000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFFFFFD29A61280000000000
00000000000000346CA5DEFFFFFFFFFFFFFFFFFFE2AA7139000000000000000000000000000000000B447CB5EEFFFFFFFFFFFFFFFFFFD29A6128000000000000
0000000000000000346CA5DEFFFFFFFFFFFFFFE2AA71390000000000000000000000000000000000000B447CB5EEFFFFFFFFFFFFFFD29A612800000000000000
000000000000000000346CA5DEFFFFFFFFFFE2AA713900000000000000000000000000000000000000000B447CB5EEFFFFFFFFFFD29A61280000000000000000
00000000000000000000346CA5DEFFFFFFE2AA7139000000000000000000000000000000000000000000000B447CB5EEFFFFFFD29A6128000000000000000000
0000000000000000000000346CA5DEFFE2AA71390000000000000000000000000000000000000000000000000B447CB5EEFFD29A612800000000000000000000
000000000000000000000000346CA5C0A9713900000000000000000000000000000000000000000000000000000B447CB3C09A61280000000000000000000000
000000000000000000000000003465706838000000000000000000000000000000000000000000000000000000000B426E705B28000000000000000000000000
00000000000000000000000000001B201D000000000000000000000000000000000000000000000000000000000000021F201600000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000213939240000000000000000000000000000000000000000000000000000000000000000000000000221231A00000000000000000000
0000000000000000002A618989642E000000000000000000000000000000000000000000000000000000000000000000000B426F735F2D000000000000000000
000000000000000029629BD2D59F672F00000000000000000000000000000000000000000000000000000000000000000C447CB2C39E662D0000000000000000
0000000000000029629BD3FFFFD8A068300000000000000000000000000000000000000000000000000000000000000C457DB5EDFFD79E652C00000000000000
00000000000029629AD3FFFFFFFFDAA16A32000000000000000000000000000000000000000000000000000000000E457EB6EEFFFFFFD69D652C000000000000
000000000028619AD3FFFFFFFFFFFFDBA36B3300000000000000000000000000000000000000000000000000000E477EB7EFFFFFFFFFFFD69D642B0000000000
000000001F5F9AD2FFFFFFFFFFFFFFFFDCA46D350000000000000000000000000000000000000000000000000F477FB8F0FFFFFFFFFFFFFFD59C632B00000000
000000003787CFFFFFFFFFFFFFFFFFFFFFDEA66E3600000000000000000000000000000000000000000000104780B8F0FFFFFFFFFFFFFFFFFFD59C5C17000000
000000003787D3FFFFFFFFFFFFFFFFFFFFFFDFA76F370000000000000000000000000000000000000000114981B8F1FFFFFFFFFFFFFFFFFFFFFFBF6F1F000000
0000000022629DD7FFFFFFFFFFFFFFFFFFFFFFE0A97139010000000000000000000000000000000000114A82BAF2FFFFFFFFFFFFFFFFFFFFFFEBB06C1E000000
00000000002C669FD8FFFFFFFFFFFFFFFFFFFFFFE2AA723A03000000000000000000000000000000124A83BBF3FFFFFFFFFFFFFFFFFFFFFFEAB2794000000000
0000000000002E67A0DAFFFFFFFFFFFFFFFFFFFFFFE3AB743C0300000000000000000000000000134B83BCF4FFFFFFFFFFFFFFFFFFFFFFEAB279410800000000
000000000000002F68A1DBFFFFFFFFFFFFFFFFFFFFFFE5AD743D050000000000000000000000144C84BCF5FFFFFFFFFFFFFFFFFFFFFFEAB17940080000000000
0000000000000000306AA3DDFFFFFFFFFFFFFFFFFFFFFFE5AE783E06000000000000000000154D85BDF5FFFFFFFFFFFFFFFFFFFFFFE9B1794008000000000000
000000000000000000326BA5DEFFFFFFFFFFFFFFFFFFFFFFE7AF78400800000000000000164E86BEF6FFFFFFFFFFFFFFFFFFFFFFE9B178400700000000000000
00000000000000000000336DA6DFFFFFFFFFFFFFFFFFFFFFFFE9B17941090000000000164F87BFF7FFFFFFFFFFFFFFFFFFFFFFE9B07840070000000000000000
0000000000000000000000356EA8E1FFFFFFFFFFFFFFFFFFFFFFEAB27A420A000000174F88C0F8FFFFFFFFFFFFFFFFFFFFFFE9B0783F07000000000000000000
0000000000000000000000003770A9E2FFFFFFFFFFFFFFFFFFFFFFEBB37B440C00185088C1F9FFFFFFFFFFFFFFFFFFFFFFE8B0773F0700000000000000000000
000000000000000000000000003871AAE4FFFFFFFFFFFFFFFFFFFFFFEDB57C451A5189C1F9FFFFFFFFFFFFFFFFFFFFFFE8B0773F060000000000000000000000
00000000000000000000000000003973ACE5FFFFFFFFFFFFFFFFFFFFFFEEB67E528BC2FAFFFFFFFFFFFFFFFFFFFFFFE8AF773E06000000000000000000000000
0000000000000000000000000000023B74ADE6FFFFFFFFFFFFFFFFFFFFFFEFB88FC3FCFFFFFFFFFFFFFFFFFFFFFFE7AF773E0600000000000000000000000000
000000000000000000000000000000033C77AFE8FFFFFFFFFFFFFFFFFFFFFFF3DFFCFFFFFFFFFFFFFFFFFFFFFFE7AF763E050000000000000000000000000000
00000000000000000000000000000000043E78B0E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AE763D05000000000000000000000000000000
0000000000000000000000000000000000063F79B2EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6AE763D0500000000000000000000000000000000
00000000000000000000000000000000000007417AB3ECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5AE753D050000000000000000000000000000000000
0000000000000000000000000000000000000009427BB5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5AD743D04000000000000000000000000000000000000
00000000000000000000000000000000000000000A437CB6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5AD743C0300000000000000000000000000000000000000
0000000000000000000000000000000000000000000C457EB8F3FFFFFFFFFFFFFFFFFFFFFFFFFFE6AD743C030000000000000000000000000000000000000000
0000000000000000000000000000000000000000000019528FDFFFFFFFFFFFFFFFFFFFFFFFFFFFCF7F470D000000000000000000000000000000000000000000
00000000000000000000000000000000000000000017508AC3FCFFFFFFFFFFFFFFFFFFFFFFFFFFF1B87E450C0000000000000000000000000000000000000000
0000000000000000000000000000000000000000164F88C1FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB67C440B00000000000000000000000000000000000000
00000000000000000000000000000000000000154E87C0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEB57B430A000000000000000000000000000000000000
000000000000000000000000000000000000134C86BFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDB47A41080000000000000000000000000000000000
0000000000000000000000000000000000124B84BDF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECB379400700000000000000000000000000000000
00000000000000000000000000000000114A83BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBB1793F06000000000000000000000000000000
0000000000000000000000000000000F4882BBF4FFFFFFFFFFFFFFFFFFFFFFE6CFF0FFFFFFFFFFFFFFFFFFFFFFE9B0783E050000000000000000000000000000
00000000000000000000000000000E4780BAF3FFFFFFFFFFFFFFFFFFFFFFE5AC7FB7EEFFFFFFFFFFFFFFFFFFFFFFE8AF783D0300000000000000000000000000
000000000000000000000000000D467FB8F1FFFFFFFFFFFFFFFFFFFFFFE4AC74457CB4EBFFFFFFFFFFFFFFFFFFFFFFE7AE743C03000000000000000000000000
0000000000000000000000000B457EB7F0FFFFFFFFFFFFFFFFFFFFFFE3AB733B0C437AB2E9FFFFFFFFFFFFFFFFFFFFFFE5AD743A010000000000000000000000
00000000000000000000000A437CB6EFFFFFFFFFFFFFFFFFFFFFFFE2AA723A0200094078AFE6FFFFFFFFFFFFFFFFFFFFFFE5AB72390000000000000000000000
0000000000000000000009427BB4EEFFFFFFFFFFFFFFFFFFFFFFE2AA713901000000073E77ADE4FFFFFFFFFFFFFFFFFFFFFFE3AA713800000000000000000000
00000000000000000007417AB3ECFFFFFFFFFFFFFFFFFFFFFFE1A97138000000000000043C73AAE1FFFFFFFFFFFFFFFFFFFFFFE2A97037000000000000000000
0000000000000000063F78B2EBFFFFFFFFFFFFFFFFFFFFFFE0A870380000000000000000023970A8DFFFFFFFFFFFFFFFFFFFFFFFE1A86F360000000000000000
00000000000000053E77B0EAFFFFFFFFFFFFFFFFFFFFFFE0A76F370000000000000000000000376EA5DCFFFFFFFFFFFFFFFFFFFFFFE0A76E3400000000000000
000000000000033D76AFE8FFFFFFFFFFFFFFFFFFFFFFDFA76E3600000000000000000000000000346BA3DAFFFFFFFFFFFFFFFFFFFFFFDFA66C33000000000000
0000000000033B74AEE7FFFFFFFFFFFFFFFFFFFFFFDEA66E360000000000000000000000000000003169A0D7FFFFFFFFFFFFFFFFFFFFFFDEA46B320000000000
00000000003A74ADE5FFFFFFFFFFFFFFFFFFFFFFDEA56D3500000000000000000000000000000000002F669ED5FFFFFFFFFFFFFFFFFFFFFFDCA36A3000000000
00000000256CABE5FFFFFFFFFFFFFFFFFFFFFFDDA46C34000000000000000000000000000000000000002C649BD3FFFFFFFFFFFFFFFFFFFFFFDBA1621A000000
000000002B7CCBFFFFFFFFFFFFFFFFFFFFFFDCA46C330000000000000000000000000000000000000000002A6199D0FFFFFFFFFFFFFFFFFFFFFFBF6F1F000000
000000002974B4ECFFFFFFFFFFFFFFFFFFDBA36B330000000000000000000000000000000000000000000000285F96CEFFFFFFFFFFFFFFFFFFE7AB691E000000
0000000004437AB3EBFFFFFFFFFFFFFFDBA16A3200000000000000000000000000000000000000000000000000255C94CBFFFFFFFFFFFFFFEDB1763B00000000
00000000000A427AB2EAFFFFFFFFFFDAA16931000000000000000000000000000000000000000000000000000000235A91C9FFFFFFFFFFF1B77C400500000000
000000000000094179B1E9FFFFFFD9A16930000000000000000000000000000000000000000000000000000000000020578FC6FDFFFFF7BC81460A0000000000
00000000000000084079B0E8FFD8A06830000000000000000000000000000000000000000000000000000000000000001E558CC4FBFCC2864B10000000000000
0000000000000000073F78AEC0A0672F0000000000000000000000000000000000000000000000000000000000000000001B5288BEC08B501500000000000000
000000000000000000063D6A70602E0000000000000000000000000000000000000000000000000000000000000000000000194D7070511A0000000000000000
00000000000000000000001F201A000000000000000000000000000000000000000000000000000000000000000000000000000C20200E000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000007192B343A414747413B352D1B0900000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000133043546679848A919797918B857C685645321600000000000000000000000000000000000000000000000000
0000000000000000000000000000000005223F5D7A92A4B5C7D4DAE1E7E7E1DBD5C9B7A5937E6145250500000000000000000000000000000000000000000000
000000000000000000000000000000244C6B8BA7C5DFF1FFFFFFFFFFFFFFFFFFFFFFFFF3E1C9AC906D4E25000000000000000000000000000000000000000000
0000000000000000000000000018406892B8D4F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D8B89469411800000000000000000000000000000000000000
000000000000000000000000305D86AFD6FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8AE865D31000000000000000000000000000000000000
00000000000000000000093B6EA0CBF3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4CBA16F3C0A00000000000000000000000000000000
00000000000000000015477AACDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAD7A4815000000000000000000000000000000
0000000000000000165086B8EAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBB8864F140000000000000000000000000000
000000000000000F4E87C1F6FFFFFFFFFFFFFFFFFFFFFFFFFFF7EAE4DEDEE4EAF6FFFFFFFFFFFFFFFFFFFFFFFFFFF6C0864A0F00000000000000000000000000
000000000000001E68A1D8FFFFFFFFFFFFFFFFFFFFFFE8CDBBAA9A948E8E949AA8BACCE5FFFFFFFFFFFFFFFFFFFFFFF6BB81460A000000000000000000000000
000000000000000030669ED5FFFFFFFFFFFFFFFFDABBA0806C5A4A443E3E444A596C7F9CB9DAFFFFFFFFFFFFFFFFFFFFF1B77B3B000000000000000000000000
0000000000000000002C639BD2FFFFFFFFFFE4BC946F52351F0D0000000000000C1E33506E94BBE4FFFFFFFFFFFFFFFFFFECAB68260000000000000000000000
000000000000000000002A6198CFFFFFFFCF9F764E260800000000000000000000000006264E779FD0FFFFFFFFFFFFFFFFFFD896521100000000000000000000
0000000000000000000000275E95CCF6C4915F31090000000000000000000000000000000009315F92C4F7FFFFFFFFFFFFFFFFC3813E00000000000000000000
000000000000000000000000245B92BD8553210000000000000000000000000000000000000000215386C0FBFFFFFFFFFFFFFFF0AB621B000000000000000000
000000000000000000000000002158864C1500000000000000000000000000000000000000000000154F88C4FFFFFFFFFFFFFFFFCE863E000000000000000000
00000000000000000000000000001E3A15000000000000000000000000000000000000000000000000195390D2FFFFFFFFFFFFFFF1AA61190000000000000000
0000000000000000071D180000000000000000000000000000000000071D1800000000000000000000002163A7E9FFFFFFFFFFFFFFCC853A0000000000000000
000000000000000B466D632D0000000000000000000000000000000B466D632E0000000000000000000000387ABDFFFFFFFFFFFFFFEB9F530600000000000000
00000000000007427DB79F64290000000000000000000000000007417CB79F6429000000000000000000000C4F92D7FFFFFFFFFFFFFFB76A1F00000000000000
0000000000033D78B3EED59A5F240000000000000000000000023D78B3EDD59A5F24000000000000000000002670BCFFFFFFFFFFFFFFD0843800000000000000
00000000003974AEE9FFFFD0955B20000000000000000000003873AEE9FFFFD0965B200000000000000000000A55A1ECFFFFFFFFFFFFE99D4E00000000000000
00000000346FAAE5FFFFFFFFCC91561B0000000000000000346FA9E4FFFFFFFFCC91561B0000000000000000003A86D1FFFFFFFFFFFFFAAC5C0E000000000000
0000002F6AA5E0FFFFFFFFFFFFC78C51170000000000002F6AA5E0FFFFFFFFFFFFC78C511600000000000000001F69B7FFFFFFFFFFFFFFBA6A1B000000000000
0000125FA0DBFFFFFFFFFFFFFFFDC2874D12000000002B65A0DBFFFFFFFFFFFFFFFDC3864000000000000000000A58A8F6FFFFFFFFFFFFC77729000000000000
00001565B4F1FFFFFFFFFFFFFFFFF9BE84480E000026619CD6FFFFFFFFFFFFFFFFFFD894440000000000000000004A99E7FFFFFFFFFFFFD58637000000000000
0000024480BBF6FFFFFFFFFFFFFFFFF4B97E4409215D97D2FFFFFFFFFFFFFFFFFFDDA167290000001B1F1F1F1F203C8CDCFFFFFFFFFFFFDB8B3B202020202014
0000000F4A85BFFAFFFFFFFFFFFFFFFFF0B5793F5892CEFFFFFFFFFFFFFFFFFFE2A76C310000001B666F6F6F6F707087D7FFFFFFFFFFFFDF8F70707070707054
00000000134E87C4FFFFFFFFFFFFFFFFFFEBB0778EC9FFFFFFFFFFFFFFFFFFE5AB7035000000000E4F8FBFBFBFC0C0C2EDFFFFFFFFFFFFF7C6C0C0C0C0BF7D3C
000000000018538DC9FFFFFFFFFFFFFFFFFFE6B2C4FFFFFFFFFFFFFFFFFFEBB0743A0000000000001F5E9EDCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4E0E
0000000000001C5792CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB4793F04000000000000002D6CACECFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1A05F1F00
00000000000000215C97D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B87E43080000000000000000003B7ABBFAFFFFFFFFFFFFFFFFFFFFFFFFF3B271300000
000000000000000026609BD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8BD83470E000000000000000000000B4A88C9FFFFFFFFFFFFFFFFFFFFFFFFC48341010000
0000000000000000002A65A0DBFFFFFFFFFFFFFFFFFFFFFFFFFFFCC2874C12000000000000000000000000195898D8FFFFFFFFFFFFFFFFFFFFD5955313000000
000000000000000000002F6AA4DFFFFFFFFFFFFFFFFFFFFFFFFFC78B511600000000000000000000000000002767A7E6FFFFFFFFFFFFFFFFE7A6652400000000
0000000000000000000000336EA9ECFFFFFFFFFFFFFFFFFFFFCE90561B000000000000000000000000000000003777B5F5FFFFFFFFFFFFF8B776360000000000
00000000000000000000002E69A4E9FFFFFFFFFFFFFFFFFFFFCA8B501600000000000000000000000000000000064585C4FFFFFFFFFFFFC98848070000000000
000000000000000000002A649FDAFFFFFFFFFFFFFFFFFFFFFFFCC2864C1100000000000000000000000000000000145393D3FFFFFFFFDB9A5918000000000000
00000000000000000025609BD6FFFFFFFFFFFFFFFFFFFFFFFFFFF8BD83470C000000000000000000000000000000002362A1E1FFFFECAC6A2A00000000000000
0000000000000000205B96D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B87D4308000000000000000000000000000000003171B0F0FEBE7C3B0000000000000000
000000000000001C5792CCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB4793E03000000000000000000000000000000013F7FBFCE8E4D0C0000000000000000
00000000000017528DC8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAAF7439000000000000000000000000000000000F4E8EA05E1E000000000000000000
0000000000134E89C3FEFFFFFFFFFFFFFFFFEBB7C9FFFFFFFFFFFFFFFFFFE5AB7035000000000000000000000000000000001E5E702F00000000000000000000
000000000E4984BFFAFFFFFFFFFFFFFFFFF0B57A93CEFFFFFFFFFFFFFFFFFFE1A66B300000000000000000000000000000000027300000000000000000000000
00000009447FBAF5FFFFFFFFFFFFFFFFF5BA7F445E98D2FFFFFFFFFFFFFFFFFFDCA1662C00000000000000000000000000000000000000000000000000000000
0000003F7BB6F0FFFFFFFFFFFFFFFFF9BE84490E26619CD7FFFFFFFFFFFFFFFFFFD89D6224000000000000000000000000000000000000000000000000000000
00001565AFECFFFFFFFFFFFFFFFFFEC3884D1300002B66A1DCFFFFFFFFFFFFFFFFFFD39444000000000000000000000000000000000000000000000000000000
00001461A5E0FFFFFFFFFFFFFFFFC88D521700000000306BA5E0FFFFFFFFFFFFFFFFC88B41000000000000000000000000000000000000000000000000000000
000000346FAAE5FFFFFFFFFFFFCC91571C000000000000346FAAE5FFFFFFFFFFFFCC91571B000000000000000000000000000000000000000000000000000000
000000003974AFEAFFFFFFFFD1965B2000000000000000003974AFE9FFFFFFFFD1965B2000000000000000000000000000000000000000000000000000000000
00000000033E79B3EEFFFFD59B6025000000000000000000033D79B3EEFFFFD59B60250000000000000000000000000000000000000000000000000000000000
000000000007427CB8F3DA9F642A000000000000000000000007427CB8F3DA9F642A000000000000000000000000000000000000000000000000000000000000
0000000000000C4782BCA4692E000000000000000000000000000C4782BCA4692E00000000000000000000000000000000000000000000000000000000000000
00000000000000114B746933000000000000000000000000000000104B7469330000000000000000000000000000000000000000000000000000000000000000
00000000000000000D241F00000000000000000000000000000000000D241F000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000024323737373737373737373737373737373737373737373737373737373737372F190000000000000000000000
0000000000000000000000000000000000002C65828787878787878787878787878787878787878787878787878787878787877F541B00000000000000000000
000000000000000000000000000000000026659DD1D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7C58C5411000000000000000000
00000000000000000000000000000000003989D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC17122000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004090E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004393E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
0000000000000000000000000000000005529FECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
000000000000000000000000000000001C68B6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
000000000000000000000000000000003580CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
000000000000000000000000000000195DA2E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
0000000000000000000000000000034689CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000003072B5F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000195C9FE2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
000000000000000000000000004389CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
0000000000000000000000001C68B0F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
0000000000000000000000003380CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
0000000000000000000000004A97E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000B5BABFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000E5EAEFBDEC4D0FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
000000000000000000000005538DB296778CB7F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
0000000000000000000000001F49654D2C4796E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000051601003F8FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000003F8FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000003F8FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000004595E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000125CA6F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000000000307BC5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
0000000000000000000000000000001A5799E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000000001A528BC8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
0000000000000000000000000016528BC3FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
000000000000000000000000014887C3FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
0000000000000000000000001F68B3F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
0000000000000000000000003D88D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000857A7F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000F5FAFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000F5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000F5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC87727000000000000000000
00000000000000000000000F5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000000000000000
00000000000000000000000F5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC37323000000000000000000
00000000000000000000000F5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6691D000000000000000000
00000000000000000000000F5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE79E5004000000000000000000
00000000000000000000000F5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE813600000000000000000000
00000000000000000000000F5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD69E641C00000000000000000000
00000000000000000000000856A6E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8CF9D642C0000000000000000000000
0000000000000000000000003770A9C6C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C3B59E82642B000000000000000000000000
00000000000000000000000000376A76777777777777777777777777777777777777777777777777777777777777736950361D00000000000000000000000000
00000000000000000000000000001C27272727272727272727272727272727272727272727272727272727272727231C04000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000082E373737373737372D00000000000000000000000000000000000000000000000000000000002D3737373721000000000000000000000000000000
000000002E798787878787878761110000000000000000000000000000000000000000000000000000000A5A878787875A220000000000000000000000000000
000000003787D7D7D7D7D7D7B161110000000000000000000000000000000000000000000000000000000A5AAAD7D7CB935A2200000000000000000000000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFCB935A22000000000000000000000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFCB935A220000000000000000000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFCB935A2200000000000000000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFCB935A22000000000000000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFCB935A220000000000000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFCB935A2200000000000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFFFCB935A22000000000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFFFFFCB935A220000000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFFFFFFFCB935A2200000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFFFFFFFFFCB935A1C000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFB161110000000000000000000000000000000000000000000000000000000A5AAAFAFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFB16121212121212121212121212121212121212121212121212121212121215AAAFAFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFB171717171717171717171717171717171717171717171717171717171717171AAFAFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFD4C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1D1FFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003787C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77727000000
0000000029697777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777631A000000
00000000001E27272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727271A00000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000001020303437353326160600000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000001C3B4E5E6F7F8487858374645444270800000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000004284766859EAEBDCDD4D7D5D3C3B3A392705233120000000000000000000000000000000000000000000000000000000000
0000000000000000000000000019467092B0CFECFCFFFFFFFFFFFFFFFFF1DABA9D7D552900000000000000000000000000000000000000000000000000000000
0000000000000000000000012F5B89B5DBF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFE5C4986B3E120000000000000000000000000000000000000000000000000000
00000000000000000000033C719ECBF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAAE81501800000000000000000000000000000000000000000000000000
000000000000000000033C74AEE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C1875018000000000000000000000000000000000000000000000000
0000000000000000013C74AEE5FFFFFFFFFFFFFFFFFDE9E6D7D7D9E7F7FFFFFFFFFFFFFFFAC18750170000000000000000000000000000000000000000000000
00000000000000002F71AEE5FFFFFFFFFFFFFFE5C7B6A09687879597A7C2DEFDFFFFFFFFFFFAC187460400000000000000000000000000000000000000000000
00000000000000195B9EE0FFFFFFFFFFFFE4BB9E8585858585858585858597BBE7FFFFFFFFFFF8B5733100000000000000000000000000000000000000000000
000000000000044689CBFFFFFFFFFFFFCDA08585858585858585858585858585ABD8FFFFFFFFFFE2A05E1B000000000000000000000000000000000000000000
0000000000002870B5F8FFFFFFFFFFCB96858585858585858585858585858585859ED9FFFFFFFFFFCD8B42000000000000000000000000000000000000000000
0000000000004792DBFFFFFFFFFFD197858585858585858585858585858585858585A7E3FFFFFFFFF5AA61170000000000000000000000000000000000000000
00000000001C66B0F9FFFFFFFFE6A08585858585858585858585858585858585858585ADF3FFFFFFFFCA80360000000000000000000000000000000000000000
00000000003B85CFFFFFFFFFFFC285858585858585858585858585858585858585858587CAFFFFFFFFE9A1550B00000000000000000000000000000000000000
00000000004E9EECFFFFFFFFE9A085858585858585858585858585858585858585858585ABF8FFFFFFFFB96A1C00000000000000000000000000000000000000
00000000105EAEFBFFFFFFFFD7888585858585858585858585858585858585858585858596DEFFFFFFFFC97B2C00000000000000000000000000000000000000
00000000206FBDFFFFFFFFFFBA858585858585858585858585858585858585858585858585C7FFFFFFFFD98B3C00000000000000000000000000000000000000
00000000307FCDFFFFFFFFFFB6858585858585858585858585858585858585858585858585C6FFFFFFFFE99B4B00000000000000000000000000000000000000
000000003484D4FFFFFFFFF7A7858585858585858585858585858585858585858585858585B7FFFFFFFFF0A05000000000000000000000000000000000000000
000000003787D7FFFFFFFFF6A6858585858585858585858585858585858585858585858585B6FFFFFFFFF3A35303000000000000000000000000000000000000
000000003585D5FFFFFFFFF6A6858585858585858585858585858585858585858585858585B6FFFFFFFFF2A25202000000000000000000000000000000000000
000000003382D3FFFFFFFFF7A7858585858585858585858585858585858585858585858585B7FFFFFFFFEC9D4D00000000000000000000000000000000000000
000000002674C3FFFFFFFFFFB7858585858585858585858585858585858585858585858585C7FFFFFFFFDF904000000000000000000000000000000000000000
000000001664B3FFFFFFFFFFC7858585858585858585858585858585858585858585858596DAFFFFFFFFD2833400000000000000000000000000000000000000
000000000654A3F1FFFFFFFFDD9685858585858585858585858585858585858585858585A7F4FFFFFFFFBF722600000000000000000000000000000000000000
00000000004491DAFFFFFFFFFCB585858585858585858585858585858585858585858587CAFFFFFFFFF2A65A0E00000000000000000000000000000000000000
00000000002770BAFFFFFFFFFFD1968585858585858585858585858585858585858585ABEEFFFFFFFFDA8E410000000000000000000000000000000000000000
000000000008529DE5FFFFFFFFFDBB868585858585858585858585858585858585859DD9FFFFFFFFFEB76D270000000000000000000000000000000000000000
000000000000337CC4FFFFFFFFFFEEB4858585858585858585858585858585858597CCFFFFFFFFFFDA934A030000000000000000000000000000000000000000
000000000000125598DBFFFFFFFFFFEDB48585858585858585858585858585859ECEFFFFFFFFFFF5B26D26000000000000000000000000000000000000000000
00000000000000296BAEF0FFFFFFFFFFEEC197858585858585858585858586ACD8FFFFFFFFFFFFCF864301000000000000000000000000000000000000000000
00000000000000003E81C1FAFFFFFFFFFFFFD8B7978585858585858589A7C9F2FFFFFFFFFFFFFFE2A76E35050300000000000000000000000000000000000000
0000000000000000125087C1FAFFFFFFFFFFFFFDDFC7B7ADA7A7B6C3D7EEFFFFFFFFFFFFFFFFFFFFDFA76E505248280000000000000000000000000000000000
000000000000000000185087C1F7FFFFFFFFFFFFFFFFFFF9F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA79AA298683000000000000000000000000000000000
00000000000000000000185087B5E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D5E8FFFFFFFFFFEAE5F1D9A16930000000000000000000000000000000
0000000000000000000000174673A0CDF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDAB286ACE4FFFFFFFFFFFFFFFFDAA169300000000000000000000000000000
00000000000000000000000004315E8BAACAE9FFFFFFFFFFFFFFFFFFFFFFF2DAB7946D4373ABE4FFFFFFFFFFFFFFFFDAA1693000000000000000000000000000
00000000000000000000000000001B426180A1B9C9D9E9F0F3F2EBDFD2BFA68E6D4A27023A72ABECFFFFFFFFFFFFFFFFDAA16930000000000000000000000000
000000000000000000000000000000001736556A7B8B9BA0A3A29D9083725A412703000003509CE6FFFFFFFFFFFFFFFFFFDAA169300000000000000000000000
0000000000000000000000000000000000000B1C2C3C4B5053524D4034260E00000000000453A3F2FFFFFFFFFFFFFFFFFFFFDAA1693000000000000000000000
000000000000000000000000000000000000000000000000030200000000000000000000004798D9FFFFFFFFFFFFFFFFFFFFFFDAA16930000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000002968A1DAFFFFFFFFFFFFFFFFFFFFFFDAA169300000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFDAA1693000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFDAA16930000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFDAA169300000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFDAA1692F00000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFDAA05A10000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFC27525000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFC17424000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFD89E580E000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFD8A0672D00000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFD8A0672F0000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFD8A0672F000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A0C2C19E672F00000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002F5A7574582D0000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001025240E000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000122F3537373737373737373737373222030000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000163C5C7B858787878787878787878787826A4C2D00000000000000000000000000000000000000000000
000000000000000000000000000000000000000000175086A5C6D5D7D7D7D7D7D7D7D7D7D7D7D2B5976C33000000000000000000000000000000000000000000
0000000000000000000000000000000000000000135088C1EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDA56C330000000000000000000000000000000000000000
0000000000000000000000000000000000000000347EC1F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDA4590F00000000000000000000000000000000000000
0000000000000000000000000000000000000009539FE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3782E00000000000000000000000000000000000000
000000000000000000000000000000000000002070BDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1984800000000000000000000000000000000000000
000000000000000000000000000000000000002676C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE9E4E00000000000000000000000000000000000000
000000000000000000000F12121212121212122777C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF9F4F12121212121212121109000000000000000000
00000000000000001F445F62626262626262626277C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF9F6262626262626262626153340300000000000000
000000000000001F588FADB2B2B2B2B2B2B2B2B2B2D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBEB2B2B2B2B2B2B2B2B2B19F743C00000000000000
00000000000000428DCAF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5AD681E000000000000
0000000000000D5CACF6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD18435000000000000
0000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD88837000000000000
0000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD88837000000000000
0000000000001060B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD88837000000000000
0000000000000E5EAEFEFFD4BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEC1F3FFD68636000000000000
000000000000014B96D9FFB26E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E8ADAF5BA6F26000000000000
000000000000002B68A0C1B2621E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E3A8AC7B1844C07000000000000
00000000000000002F5874775E193333333333333333333333333333333333333333333333333333333333333333333333332C38777768471300000000000000
0000000000000000000E24271E418383838383838383838383838383838383838383838383838383838383838383838383836A1A27271D000000000000000000
000000000000000000000000004494D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3BB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004494E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6B1B000000000000000000000000
000000000000000000000000004292E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA6A1A000000000000000000000000
00000000000000000000000000317BC5FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1A1560C000000000000000000000000
0000000000000000000000000012548CB6C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C5A7703400000000000000000000000000
00000000000000000000000000001B4C6A777777777777777777777777777777777777777777777777777777777777755C370000000000000000000000000000
00000000000000000000000000000003202727272727272727272727272727272727272727272727272727272727272513000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000F1F2E32353735322E1F0F000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000192C3C4C5C6D7E82858785827D6D5D4E3F2F190000000000000000000000000000000000000000000000
00000000000000000000000000000000000000062544627A8B9BACBCCCD2D5D7D5D2CBBCAD9D8D7E614527080000000000000000000000000000000000000000
000000000000000000000000000000000011304F6D8FADC8D9E9FAFFFFFFFFFFFFFFFFFFFBEBDCCCAD9070523514000000000000000000000000000000000000
000000000018000000000000000000022F5A7999B8D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D9BB9F7E562C0000000000000000000000000000000000
000000002D6835020000000000001844719EC3E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C69B6E4317000000000000000000000000000000
00000000378773400E000000012D5987B3E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDB186592E0000000000000000000000000000
000000003787B17D4A17000E426F9CC9F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C99D6F3700000000000000000000000000
000000003787D7BB875522487FB2DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0A87139020000000000000000000000
000000003787D7F9C6936081B9F0FFFFFFFFFFFFFFFFFFFFFFFEEDDDCCBDB9B7BABECCDCECFCFFFFFFFFFFFFFFFFFFFFFFE2AA733B0400000000000000000000
000000003787D7FFFFD09FBBF2FFFFFFFFFFFFFFFFFFFFF0D1B29F8E7E6D69676A6E7E8E9EB1D0EEFFFFFFFFFFFFFFFFFFFFE4AC773D00000000000000000000
000000003787D7FFFFFFECFCFFFFFFFFFFFFFFFFFFE8C5A6876850402F1F19171A20303F4E6886A4C2E9FFFFFFFFFFFFFFFFFFE6AE6E2D000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFDD1A57B5C3C1F02000000000000000000001D3B5A7AA6D1FDFFFFFFFFFFFFFFFFDE9D5A190000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFE6BA8E6136120000000000000000000000000000001037628FBAEBFFFFFFFFFFFFFFFFCA88470600000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFDEA8774B1F000000000000000000000000000000000000001F4B79B1E9FFFFFFFFFFFFFFF8B7773400000000000000
000000003787D7FFFFFFFFFFFFFFFFFFE8A36D3708000000000000000000000000000000000000000000084078AFE7FFFFFFFFFFFFFFE5A35E15000000000000
000000003787D7FFFFFFFFFFFFFFFFFFECAB78441100000000000000000000000000000000000000000000063E78AFF0FFFFFFFFFFFFFFC87E35000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFE8B5824F1C00000000000000000000000000000000000000000000043E81C3FFFFFFFFFFFFFFE89F550C0000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFF3C08D5A2600000000000000000000000000000000000000000000115295D6FFFFFFFFFFFFFFC0762D0000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFDCA976431000000000000000000000000000000000000000000002566AAF2FFFFFFFFFFFFDF974C0300000000
000000003787D7F6F0EBE5E0DAD5CFC9C4BEB9B3AEA8A26F2E000000000000000000000000000000000000000000003F88D2FFFFFFFFFFFFFFB6691B00000000
000000003787ABA6A09B95908A857F7A746E69635E58534D25000000000000000000000000000000000000000000001F68B2FBFFFFFFFFFFFFC97A2B00000000
000000002D615B56504B45403A352F29241E19130E0803000000000000173230271C00000000000000000000000000004793DBFFFFFFFFFFFFD98A3C00000000
0000000000110B06000000000000000000000000000000000000001D46617E8077673B0F0000000000000000000000002B79C8FFFFFFFFFFFFE99B4C00000000
000000000000000000000000000000000000000000000000000018538EADC9D0C6AB7E511700000000000000000000001A68B7FFFFFFFFFFFFFAAC5C0F000000
000000000000000000000000000000000000000000000000000C4E89C4F9FFFFFFEDC1843D00000000000000000000000957A7F5FFFFFFFFFFFFBC6D1F000000
00000000000000000000000000000000000000000000000000226FBDFAFFFFFFFFFFF0AA631D00000000000000000000004796E6FFFFFFFFFFFFC27222000000
000000000000000000000000000000000000000000000000003683D1FFFFFFFFFFFFFFCE7E2E00000000000000000000004393E3FFFFFFFFFFFFC57525000000
000000000000000000000000000000000000000000000000004494E1FFFFFFFFFFFFFFCE7E2E00000000000000000000004191E1FFFFFFFFFFFFC77727000000
000000000000000000000000000000000000000000000000003280CDFFFFFFFFFFFFFFC87E2E00000000000000000000004393E3FFFFFFFFFFFFC47424000000
000000000000000000000000000000000000000000000000001E6BB5F0FFFFFFFFFFE8A25C1500000000000000000000004A99E7FFFFFFFFFFFFC27222000000
0000000000000000000000000000000000000000000000000005437EB9EAFFFFFFE0B37C3500000000000000000000000D5AAAF8FFFFFFFFFFFFB96A1C000000
00000000000000000000000000000000000000000000000000000E48829FBAC0B69D70440E00000000000000000000001E6BBAFFFFFFFFFFFFF7A9590B000000
0000000000000000000000000000000000000000000000000000001137536E70665A2E020000000000000000000000002E7DCBFFFFFFFFFFFFE6984900000000
0000000000000000000000000015190000000000000000000000000000082220160C00000000000000000000000000054E99E1FFFFFFFFFFFFD5883900000000
000000000000000000000221405E5E1700000000000000000000000000000000000000000000000000000000000000256DB9FFFFFFFFFFFFFFC4762800000000
00000000000000000D2C4B698AA9833C000000000000000000000000000000000000000000000000000000000000014590D8FFFFFFFFFFFFF9B0661700000000
0000000000001938577696B5D3F0A9601C00000000000000000000000000000000000000000000000000000000002E6FB1F8FFFFFFFFFFFFD991460000000000
000000000B446181A1C1DFFEFFFFCC8D51150000000000000000000000000000000000000000000000000000001A5B9EDFFFFFFFFFFFFFFFB96E250000000000
000000001661AACCEBFFFFFFFFFFFEC2864A0E0000000000000000000000000000000000000000000000000010488BCBFFFFFFFFFFFFFFE2994F060000000000
00000000003E86CFFFFFFFFFFFFFFFF7BB7E43070000000000000000000000000000000000000000000000124981B9F9FFFFFFFFFFFFFFC2782F000000000000
00000000001C60A3E7FFFFFFFFFFFFFFF0B4783D12000000000000000000000000000000000000000000164B83BBF2FFFFFFFFFFFFFFDC9A560F000000000000
0000000000003478BBFEFFFFFFFFFFFFFFE9AD81552B010000000000000000000000000000000000022D5885BDF4FFFFFFFFFFFFFFEFAE6C2A00000000000000
000000000000094C90D3FFFFFFFFFFFFFFFFEFC49A6E44190000000000000000000000000000011F44709CC8F6FFFFFFFFFFFFFFFFC2803D0000000000000000
000000000000002063A1DDFFFFFFFFFFFFFFFFFFDDB2875D442E17010000000000000000102C4A6888B3DFFFFFFFFFFFFFFFFFFFD59451100000000000000000
0000000000000000306CA8E4FFFFFFFFFFFFFFFFFFF6CCA8927B634E382E2A272A303F4E5E7696B3D1F6FFFFFFFFFFFFFFFFFFDAA36524000000000000000000
0000000000000000003774AFEAFFFFFFFFFFFFFFFFFFFFF4DEC8B19C847E7A777A7E8E9EADC1DFFDFFFFFFFFFFFFFFFFFFFFD8A1693200000000000000000000
000000000000000000033E79ACE0FFFFFFFFFFFFFFFFFFFFFFFFFEE8D3CECAC7CACDDCECFCFFFFFFFFFFFFFFFFFFFFFFFFD69F67300000000000000000000000
00000000000000000000083C6FA3D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED39D652E000000000000000000000000
00000000000000000000000032669AC7F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7BB90632B00000000000000000000000000
00000000000000000000000000295883AFD9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD0A4784D200000000000000000000000000000
0000000000000000000000000000153F6A96BCDDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D8B88D613509000000000000000000000000000000
0000000000000000000000000000000027527295B5D5EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9CAAD8F6E4A1D0000000000000000000000000000000000
0000000000000000000000000000000000092A4A6A8DA3B9D0E6F2FDFFFFFFFFFFFFFFFBEBDBCCBC9F8060442506000000000000000000000000000000000000
0000000000000000000000000000000000000002233F556B8298A3AEB9C4C6C7C5C2BCAD9D8D7D6D543618000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000091F3647535E6A74767775726D5D4E3E2F1F0A0000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000004101B24262725221E0F00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

65
data/theme/default/Up.edf Normal file
View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000A1C00000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000006446831000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000003B77A264270000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000306DABD5985B1E00000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000002663A1DEFFCC8E5114000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000001D5A97D5FFFFFFC285480B0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000012508DCBFFFFFFFFF6B97B3E0100000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000094783C1FEFFFFFFFFFFECAF723400000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000003C7AB7F4FFFFFFFFFFFFFFE2A5682B000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000003270ADEBFFFFFFFFFFFFFFFFFFD99C5F220000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000002866A3E0FFFFFFFFFFFFFFFFFFFFFFCF92551800000000000000000000000000000000000000000000
000000000000000000000000000000000000000000001F5D9AD7FFFFFFFFFFFFFFFFFFFFFFFFFFC6884B0F000000000000000000000000000000000000000000
000000000000000000000000000000000000000000155290CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9BD7F42050000000000000000000000000000000000000000
00000000000000000000000000000000000000000C4886C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B377390000000000000000000000000000000000000000
00000000000000000000000000000000000000013F7CB9F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6A96C2F00000000000000000000000000000000000000
000000000000000000000000000000000000003572B0EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDA06226000000000000000000000000000000000000
0000000000000000000000000000000000002B68A6E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD496591C0000000000000000000000000000000000
0000000000000000000000000000000000215F9CD9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA8D4F1200000000000000000000000000000000
00000000000000000000000000000000175592CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC0844709000000000000000000000000000000
0000000000000000000000000000000E4B89C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B7793C000000000000000000000000000000
000000000000000000000000000004417FBCF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAD70330000000000000000000000000000
00000000000000000000000000003775B2F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1A4662900000000000000000000000000
000000000000000000000000002D6BA8E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD79A5E20000000000000000000000000
00000000000000000000000024619FDCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE9153160000000000000000000000
00000000000000000000001A5795D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4874A0E00000000000000000000
00000000000000000000104D8BC8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8BB7D4003000000000000000000
000000000000000000064481BEFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB17437000000000000000000
0000000000000000003B77B5DCDCDCDCDCDCDCDCDCE8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2DCDCDCDCDCDCDCDCDCA86A2D0000000000000000
000000000000000019698C8C8C8C8C8C8C8C8C8C8CAAF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE79C8C8C8C8C8C8C8C8C8C8C8C590900000000000000
000000000000000007383C3C3C3C3C3C3C3C3C3C55A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE595453C3C3C3C3C3C3C3C3C3C330000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5954500000000000000000000000000000000000000
000000000000000000000000000000000000000555A5DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC954500000000000000000000000000000000000000
0000000000000000000000000000000000000005558C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C4500000000000000000000000000000000000000
00000000000000000000000000000000000000002C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C2200000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000020E1A26292B29241A0E020000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000F2740505D6976797B7974695D513E27100000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000022435B738CA0ADB9C5C9CBC9C4B9ADA18B735C4321000000000000000000000000000000000000000000
00000000000000000000000000000000000000002346698EA8C0D8EFFBFFFFFFFFFFFFFFFCEFD8C1AA8C68472500000000000000000000000000000000000000
00000000000000000000000000000000000013416A90B2D5F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D4B3926A3E130000000000000000000000000000000000
0000000000000000000000000000000000285482B1D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD9AF82552A00000000000000000000000000000000
00000000000000000000000000000000366A98C5F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C4996732000000000000000000000000000000
0000000000000000000000000000043A70A7D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8A36E390400000000000000000000000000
00000000000000000000000000033E74ABE2FFFFFFFFFFFFFFFFFFFFFCE3D9D5D1D5D9E6FDFFFFFFFFFFFFFFFFFFFFDFAA743900000000000000000000000000
000000000000000000000000003573AFE5FFFFFFFFFFFFFFFFF8DFC8AF9789858185899BB1C8DEF5FFFFFFFFFFFFFFFFE5AA6D30000000000000000000000000
0000000000000000000000002867A5E4FFFFFFFFFFFFFFFFD2AC947B624B39353135394D637B92ACD7FFFFFFFFFFFFFFFFDEA163260000000000000000000000
0000000000000000000000195A99D8FFFFFFFFFFFFFFEBBD9062472E1700000000000000172E456895C0EBFFFFFFFFFFFFFFD597520F00000000000000000000
00000000000000000000004186CBFFFFFFFFFFFFFFD6A97B4D210000000000000000000000000026507DA9D4FFFFFFFFFFFFFFC27D3900000000000C00000000
000000000000000000002468AEF4FFFFFFFFFFFFCF9466390C0000000000000000000000000000000E3A659DDAFFFFFFFFFFFFECA96320000D2B485918000000
000000000000000000054B92D6FFFFFFFFFFFFDC9E5F24000000000000000000000000000000000000002C69A5E2FFFFFFFFFFFFD28D443A5874946A1D000000
000000000000000000246DB8FEFFFFFFFFFFE9AA6B2C0000000000000000000000000000000000000000003471AEEBFFFFFFFFFFF7AE6684A2C0A45609000000
000000000000000000438EBFDBF8FFFFFFF5B6783A00000000000000000000000000000000000000000000003D79B9FFFFFFFFFFFFD3B5CFECDD8F4200000000
00000000000000000032577392ADCAE8FFCF8646070000000000000000000000000000000000000000000000094C95DBFFFFFFFFFFFFFFFFFFC87B2D00000000
000000000000000000000C294661809FB9AE651C0000000000000000000000000000000000000000000000001D3A6EB7FFFFFFFFFFFFFFFFFFB3651800000000
000000000000000000000000001835526D8C44000000000000000000000000000000000000000000000D2C496685A3C7FFFFFFFFFFFFFFFFEC9F510300000000
00000000000000000000000000000007243C1E0000000000000000000000000000000000000000001D587595B1CFEDFFFFFFFFFFFFFFFFFFD78A3C0000000000
00000000000000001C4D360E00000000000000000000000000000000000000000000000000000000245F87AFD7FFFFFFFFFFFFFFFFFFFFFFC274270000000000
000000000000000035827C532D050000000000000000000000000000000000000000000000000000001A426993BAE2FFFFFFFFFFFFFFFFFBAD5F120000000000
00000000000000004B99C19A724A2300000000000000000000000000000000000000000000000000000000254C749DC4EDFFFFFFFFFFFFE69A4B000000000000
000000000000001460AEFBDFB891684019000000000000000000000000000000000000000000000000000000072F567FA9D0F7FFFFFFFFD18437000000000000
000000000000002A76C4FFFFFDD5AE865F370F000000000000000000000000000000000000000000000000000000123A628BB2DAFFFFFFBD6F22000000000000
00000000000000408DDAFFFFFFFFF4CCA47C542D050000000000000000000000000000000000000000000000000000001C446C95BCE5F5A85A0D000000000000
0000000000000955A3F0FFFFFFFFFFFFE9C29A724B2300000000000000000000000000000000000000000000000000000000274F779FC7944600000000000000
0000000000001F6BB9FFFFFFFFFFFFFFFFFFE0B8916841190000000000000000000000000000000000000000000000000000000A3158827F3100000000000000
0000000000003581CFFFFFFFFFFFFFFFFFFFFFFED6AE87591500000000000000000000000000000000000000000000000000000000143C531900000000000000
0000000000004B99E5FFFFFFFFFFFFFFFFF7DABCA18365480F00000000000000000000000000000000000000000024391D000000000000060000000000000000
00000000001360AEFBFFFFFFFFFFFFFFFCB5917255381C00000000000000000000000000000000000000000000074F85664A2C0E000000000000000000000000
00000000002976C4FFFFFFFFFFFFFFFFFFB66D280B000000000000000000000000000000000000000000000000286FBAB29576593B1D00000000000000000000
00000000003F8DDAFFFEECFFFFFFFFFFFFDA944B0D0000000000000000000000000000000000000000000000125194DCFCDEC1A385684A1F0000000000000000
000000000855A3EDD1B39CD2FFFFFFFFFFFFBA7D4004000000000000000000000000000000000000000000064483C1FFFFFFFFEDD0B282360000000000000000
000000001E6AB8A2856868B0F9FFFFFFFFFFEEB274380000000000000000000000000000000000000000003876B5F3FFFFFFFFFFF4AC60190000000000000000
00000000318173573A1E458DD1FFFFFFFFFFFFE5A96C30000000000000000000000000000000000000012E6AA9E7FFFFFFFFFFFFCB8641000000000000000000
000000001A412A0C00001E62A8EBFFFFFFFFFFFFDDA16D41170000000000000000000000000000001743709EDBFFFFFFFFFFFFE8A35D18000000000000000000
0000000000000000000000397CC1FFFFFFFFFFFFFFDDB185582D030000000000000000000000052C5886B3E0FFFFFFFFFFFFFFBF7A3400000000000000000000
00000000000000000000000E5193D0FFFFFFFFFFFFFFF4C89C705038210A00000000000A2139516E9CC8F5FFFFFFFFFFFFFFCD8E500C00000000000000000000
000000000000000000000000225F9CDAFFFFFFFFFFFFFFFFDFB69D856D5644403C4044576E869EB5DEFFFFFFFFFFFFFFFFD99B5C1E0000000000000000000000
000000000000000000000000002B69A6DEFFFFFFFFFFFFFFFFFFE9D2BAA494908C9094A4BBD3EAFFFFFFFFFFFFFFFFFFDCA66829000000000000000000000000
0000000000000000000000000000356DA1D8FFFFFFFFFFFFFFFFFFFFFFF0E4E0DCE0E4F0FFFFFFFFFFFFFFFFFFFFFFD8A16B3500000000000000000000000000
00000000000000000000000000000031679CD1FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED19D67300000000000000000000000000000
000000000000000000000000000000002B608FBBE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8BB8F612C000000000000000000000000000000
00000000000000000000000000000000001F4C78A5CDF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0CEA7794C1F00000000000000000000000000000000
00000000000000000000000000000000000009356185A8CAEAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEACBA98563370A0000000000000000000000000000000000
00000000000000000000000000000000000000001A3D5F819EB5CDE4F0FCFFFFFFFFFFFCF0E4CDB59F82603D1A00000000000000000000000000000000000000
00000000000000000000000000000000000000000000173951688095A1AEBABEBFBDB9ADA1958068513918000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000051C3445515E6A6E6F6D695D5146341C050000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000030F1A1E1F1D1A0E02000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000F202F32353735322C1C0C0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000162E3E4E5D6E7E82858785827B6A5A4A3B2B1000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000221405E7C8D9DADBDCCD2D5D7D5D2C9BAAA9A8978593A1B0000000000000000000000000000000000000000
000000000000000000000000000000000000082C4C698BA9C9DBEBFBFFFFFFFFFFFFFFFFFFF8E8D7C2A384634526000000000000000000000000000000000000
00000000000000000000000000000000001D4A7697B5D4F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDCEAE916E411500000000000000000000000000000000
0000000000000000000000000000000633608DB9DFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D9B084562A000000000000000000000000000000
00000000000000000000000000001B4975A2CFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C6996C3F1200000000000000000000000000
000000000000000000000000001E568BB8E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBAE824B12000000000000000000000000
0000000000000000000000001E568FC7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1BC844B120000000000000000000000
00000000000000000000001E568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5BC844B1200000000000000000000
000000000000000000001B568FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5BC844B0E000000000000000000
00000000000000000006498BC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5BC7D3B000000000000000000
0000000000000000003374B8FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECAB68260000000000000000
00000000000000001D60A2E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD795521000000000000000
00000000000000084A8DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27F3D00000000000000
000000000000002C76B9FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEAD681E000000000000
000000000000024C97DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1873D000000000000
0000000000002169B5FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFA65C120000000000
000000000000408BD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC57B310000000000
0000000000165EA9F3FFFFFFFFFFFFFFFFFFFFFFFFFFFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFE49C510700000000
00000000002E7DC9FFFFFFFFFFFFFFFFFFFFFFFFFCCCAAACB2DFFFFFFFFFFFFFFFFFFFFFFFFFFFD5ACAAADD5FFFFFFFFFFFFFFFFFFFFFFFFFFBA6C1E00000000
004A4239313E8CDBEDF5FDFFFFFFFFFFFFFFFFFCC38B5B5C6FA1DAFFFFFFFFFFFFFFFFFFFFFFCF96645A6496CFFFFFFFFFFFFFFFFFFFFFFFFFCB7D2E00000000
009A9289817A8E969EA6AEB6BEC6CED6DEE5EDC38B521B0C3069A1DAFFFFFFFFFFFFFFFFFFCF965E250A255E96CFFFFFFFFFFFFFFFFFFFFFFFDB8D3E00000000
00C7E1D9D1A252464E565E666E767E868E969E8B52494139313069A1DAF6FDFFFFFFFFFFCF965E25000000255E96CFFFFFFFFFFFFFFFFFFFFFEB9D4E00000000
00B7BDC4CB9243201A130E161E262E363E4671A9A1999189817971699EA6AEB6BEC6CECF965E250901000000255E9BE0FFFFFFFFFFFFFFFFFFFBAD5D10000000
00676D747B8977706A635C564F48413B343686D6F1E9E1D9D1C9C1B9965E5E666E767E867169615951494139313A8ADAFFFFFFFFFFFFFFFFFFFFBD6E1F000000
00171D243282C7C0BAB3ACA69F98918B847D77BFFFFFFFFFFFFFFFFFCF965E251E3169A2C1B9B1A9A199918981799AE0FFFFFFFFFFFFFFFFFFFFC27222000000
000000003585D5FFFFFFFCF5EFE8E1DBD4CDC7E0FFFFFFFFFFFFFFFFFFCF965E4269A2DAFFFFFFF9F0E9E1D9D1C9D2FFFFFFFFFFFFFFFFFFFFFFC57525000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF9D92A7DAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77727000000
000000003584D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7E2ECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC47424000000
000000003282D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC27222000000
000000002C7BC9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB96B1D000000
000000001C6ABAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8AA5A0C000000
000000000C5AAAF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE89A4B00000000
00000000004A9AE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8893B00000000
00000000003B89D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8792B00000000
00000000002B78C2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB4681B00000000
00000000001059A3EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE964A0100000000
0000000000003984CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF742B0000000000
0000000000001B65AEF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAA1560C0000000000
000000000000004591D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA8037000000000000
00000000000000266EB1F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6A36117000000000000
00000000000000004184C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB9763400000000000000
0000000000000000155699DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE8C490700000000000000
0000000000000000002A6CAEF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4A15F1C0000000000000000
000000000000000000003F82BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B17432000000000000000000
00000000000000000000124B84BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B1783F05000000000000000000
0000000000000000000000124B84BCF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B1783F0700000000000000000000
000000000000000000000000124B84BCEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4B1783F070000000000000000000000
00000000000000000000000000124B7DABD7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCEA1743F07000000000000000000000000
00000000000000000000000000000E3B6895C2EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6B98C5F320500000000000000000000000000
0000000000000000000000000000000026527FADD1EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9CAA3764A1C000000000000000000000000000000
0000000000000000000000000000000000103D6887A6C5E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDEBFA18061340700000000000000000000000000000000
000000000000000000000000000000000000001E3D5C7C9CBACBDBEBFBFFFFFFFFFFFFFFF8E8D8C8B49674563717000000000000000000000000000000000000
0000000000000000000000000000000000000000001231516C7D8D9DADBDC2C5C7C4C2BAAA9A8979684A2B0C0000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000071E2E3E4E5E6E72757774726B5A4B3B2B1B0100000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000101F22252724221D0C000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000191B000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000245D5E230000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000245D95945A2000000000000000
0000000000000000000000000000000000000000000000000000000000121200000000000000000000000000000000000000245D95CECB915617000000000000
000000000000000000000000000000000000000000000000000000001C5453060000000000000000000000000000000000215D95CEFFFFC78643010000000000
0000000000000000000000000000000000000000000000000000001C548D59090000000000000000000000000000000000367BB6F0FFFFF5B3702E0000000000
00000000000000000000000000000000000000000000000000001C548DA9590900000000000000000000000000000000000A457FB9F6FFFFE09D5A1800000000
000000000000000000000000000000000000000000000000001C548DC5A9590900000000000000000000000000000C3722000E4886C9FFFFFFCA874503000000
0000000000000000000000000000000000000000000000001C548DC5F9A95909000000000000000000000000000C457E5A2000185A9DDFFFFFF7B47230000000
00000000000000000000000000000000000000000000001C548DC5FEF9A959090000000000000000000000000C457EB6915718002D6FB2F4FFFFE19F560C0000
000000000000000000000000000000000000000000001C548DC5FEFFF9A9590900000000000000000000000C457EB6EFC8874502014385C7FFFFFFC0752C0000
0000000000000000000000000000000000000000001C548DC5FEFFFFF9A959090000000000000000000000447EB6EFFFF6B4712F0016589BE0FFFFDE964B0100
00000000000000000000000000000000000000001C548DC5FEFFFFFFF9A959090000000000000000000000437EB8F5FFFFE19E5C19002E78C2FFFFFEB4692100
000000000000000000000000000000000000001C548DC5FEFFFFFFFFF9A9590900000000000000002425000E4786C8FFFFFFCB8846000F59A2ECFFFFD38A3F00
0000000000000000000000000000000000001C548DC5FEFFFFFFFFFFF9A95909000000000000002B63652B0017589CDEFFFFF8B0651D003983CDFFFFF3A95D15
00000000000000000000000000000000001C548DC5FEFFFFFFFFFFFFF9A959090000000000002B639C9C5E1C002C6EB0F3FFFFD0863B001A62AEF7FFFFC87D2F
00000000021F1F1F1F1F1F1F1F1F1F1F1F548DC5FEFFFFFFFFFFFFFFF9A9590900000000002B639CD5CE8B4907004187D1FFFFEFA55B11004590D8FFFFDB8D3F
00000000346F6F6F6F6F6F6F6F6F6F6F6F8DC5FEFFFFFFFFFFFFFFFFF9A959090000000028639CD5FFFBB87732001F68B2FCFFFFC57A30002977C6FFFFEC9E4E
000000003787BFBFBFBFBFBFBFBFBFBFBFCAFEFFFFFFFFFFFFFFFFFFF9A95909000000003074B1EDFFFFE59E540A004894DCFFFFE49748001967B6FFFFFCAE5E
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A959090000000004407BC1FFFFFFBD732A002972BDFFFFF5A8570A0856A6F4FFFFBD6F
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A9590900000000000D57A1EBFFFFDD9549000F5DACFBFFFFB7681A004796E4FFFFCD7F
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A959090000000000003882CBFFFFF9AA5B0D004D9CEAFFFFC7782A003785D4FFFFDE8F
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A959090000000000001960ACF6FFFFBA6B1D003D8CDAFFFFD7893A002775C5FFFFE999
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A95909000000000000004392E2FFFFCA7C2E002D7CCCFFFFE29242002272C2FFFFEC9C
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A95909000000000000003C8CDCFFFFD48334002979C9FFFFE49444001F6FBFFFFFEF9F
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A95909000000000000003787D7FFFFD68736002777C7FFFFE79747001C6CBCFFFFF1A1
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A95909000000000000003D8DDDFFFFD48334002A7ACAFFFFE49444001F6FBFFFFFEF9F
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A95909000000000000004492E2FFFFCA7C2D00307ECDFFFFE19141002272C2FFFFEC9C
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A959090000000000001A62ADF7FFFFB96B1D00408FDDFFFFD48638002776C6FFFFE999
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A959090000000000003982CCFFFFF8A95A0D01509FEDFFFFC47628003786D4FFFFDD8F
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A9590900000000000F58A2ECFFFFDB934700125FAFFDFFFFB56517004796E4FFFFCD7F
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A959090000000006427EC1FFFFFFBD7129002E78C2FFFFF3A555070957A7F5FFFFBE6E
000000003787BCBCBCBCBCBCBCBCBCBCBCC7FCFFFFFFFFFFFFFFFFFFF9A95909000000003577B3EFFFFFE49F5309044D97E0FFFFDE9446001967B6FFFFFBAD5E
00000000346C6C6C6C6C6C6C6C6C6C6C6C8BC3FCFFFFFFFFFFFFFFFFF9A959090000000027619AD2FFF9B6743100236BB7FFFFFFC0752C002977C6FFFFEB9D4E
00000000011C1C1C1C1C1C1C1C1C1C1C1C528BC3FCFFFFFFFFFFFFFFF9A95909000000000029619AD2CC8A470506498DD6FFFFEAA2560C004691D9FFFFDB8D3E
00000000000000000000000000000000001A528BC3FCFFFFFFFFFFFFF9A9590900000000000029619A9A5C1A003375B8FAFFFFCB8137001B65AFF8FFFFC77D2E
0000000000000000000000000000000000001A528BC3FCFFFFFFFFFFF9A959090000000000000029616328001E60A3E5FFFFF1AB5F17003A84CEFFFFF2A85E14
000000000000000000000000000000000000001A528BC3FCFFFFFFFFF9A95909000000000000000022240016518DCFFFFFFFC4823F00105AA3EDFFFFD2893E00
00000000000000000000000000000000000000001A528BC3FCFFFFFFF9A9590900000000000000000000004887C2FDFFFFD9975413002F79C3FFFFFDB3681F00
0000000000000000000000000000000000000000001A528BC3FCFFFFF9A9590900000000000000000000003B74ADE5FFEFAD6A280017599CE2FFFFDD954A0000
000000000000000000000000000000000000000000001A528BC3FCFFF9A959090000000000000000000000033C74ADE5BF803D00024487C9FFFFFFBF742B0000
00000000000000000000000000000000000000000000001A528BC3FCF9A95909000000000000000000000000033C74AD884E11002F71B3F6FFFFE09E550B0000
0000000000000000000000000000000000000000000000001A528BC3F9A9590900000000000000000000000000033C74511700195B9EE0FFFFF5B3702E000000
000000000000000000000000000000000000000000000000001A528BC3A959090000000000000000000000000000032B1700104A88CBFFFFFFC8864401000000
00000000000000000000000000000000000000000000000000001A528BA9590900000000000000000000000000000000000C4781BBF7FFFFDE9C591700000000
0000000000000000000000000000000000000000000000000000001A528B59090000000000000000000000000000000000367DB8F1FFFFF3B16E2D0000000000
000000000000000000000000000000000000000000000000000000001A5252060000000000000000000000000000000000205A93CCFFFFC68441000000000000
00000000000000000000000000000000000000000000000000000000000B1100000000000000000000000000000000000000225A93CCC98F5415000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000225A9392581E00000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000225A5C210000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001718000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000001B2D020000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000001D566F210000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000001D568E73230000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000001D568EC373230000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000001D568EC7C373230000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000001D568EC7FFC373230000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000001D568EC7FFFFC373230000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000001D568EC7FFFFFFC373230000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000001D568EC7FFFFFFFFC373230000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000001D568EC7FFFFFFFFFFC373230000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000001D568EC7FFFFFFFFFFFFC373230000000000000000000000130000000000000000000000001200000000000000
0000000000000000000000000000000000001D568EC7FFFFFFFFFFFFFFC373230000000000000000000B42633F080000000000000000043C62450E0000000000
00000000000000000000000000000000001D568EC7FFFFFFFFFFFFFFFFC3732300000000000000000B447CAE794008000000000000043D76AC7F470E00000000
000000000E2D2D2D2D2D2D2D2D2D2D2D2D568EC7FFFFFFFFFFFFFFFFFFC37323000000000000000B447CB5EAB179400800000000043D76AEE7B87F470E000000
00000000377E7D7D7D7D7D7D7D7D7D7D7D8EC7FFFFFFFFFFFFFFFFFFFFC3732300000000000008447CB5EDFFEAB17940080000043D76AEE7FFF0B87F470B0000
000000003787CDCDCDCDCDCDCDCDCDCDCDD4FFFFFFFFFFFFFFFFFFFFFFC373230000000000002B74B5EDFFFFFFEAB1794008043D76AEE7FFFFFFF0B879300000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC373230000000000002369A3DCFFFFFFFFEAB179403D76AEE7FFFFFFFFDFA66C270000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3732300000000000000326BA3DCFFFFFFFFEAB17976AEE7FFFFFFFFDFA66E35000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC373230000000000000000326BA3DCFFFFFFFFEAB1AFE7FFFFFFFFDFA66E3500000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC37323000000000000000000326BA3DCFFFFFFFFF9F6FFFFFFFFDFA66E350000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3732300000000000000000000326BA3DCFFFFFFFFFFFFFFFFDFA66E35000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC373230000000000000000000000326BA3DCFFFFFFFFFFFFDFA66E3500000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC373230000000000000000000000043D76C2FFFFFFFFFFFFC579400800000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3732300000000000000000000043D76AEE7FFFFFFFFFFFFEAB1794008000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC37323000000000000000000043D76AEE7FFFFFFFFFFFFFFFFEAB17940080000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC373230000000000000000043D76AEE7FFFFFFFFEAE7FFFFFFFFEAB179400800000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3732300000000000000043D76AEE7FFFFFFFFDFA6A3DCFFFFFFFFEAB1794008000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC37323000000000000023D76AEE7FFFFFFFFDFA66E6BA3DCFFFFFFFFEAB17940060000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC373230000000000002A70AEE7FFFFFFFFDFA66E35326BA3DCFFFFFFFFEAB1742E0000
000000003787BEBEBEBEBEBEBEBEBEBEBEC5F4FFFFFFFFFFFFFFFFFFFFC37323000000000000276DA9E2FFFFFFDFA66E350000326BA3DCFFFFFFE5AD712B0000
00000000346E6E6E6E6E6E6E6E6E6E6E6E84BCF4FFFFFFFFFFFFFFFFFFC37323000000000000003871A9E2FFDFA66E3500000000326BA3DCFFE5AD743B020000
00000000011E1E1E1E1E1E1E1E1E1E1E1E4B84BCF4FFFFFFFFFFFFFFFFC3732300000000000000003871A9DFA66E35000000000000326BA3DCAD743B03000000
0000000000000000000000000000000000124B84BCF4FFFFFFFFFFFFFFC3732300000000000000000038719F6E350000000000000000326B9D743B0300000000
000000000000000000000000000000000000124B84BCF4FFFFFFFFFFFFC373230000000000000000000034533200000000000000000000305237030000000000
00000000000000000000000000000000000000124B84BCF4FFFFFFFFFFC373230000000000000000000000030000000000000000000000000200000000000000
0000000000000000000000000000000000000000124B84BCF4FFFFFFFFC373230000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000124B84BCF4FFFFFFC373230000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000124B84BCF4FFFFC373230000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000124B84BCF4FFC373230000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000124B84BCF4C373230000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000124B84BCC373230000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000124B84BC73230000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000124B8473230000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000124B681D0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000D1D000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000273F3F3D1C0000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000103C698F8F8C5F3204000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000004477FACD8DFCEA17437000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000003174B6EEFFFFFFE4A865220000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000165BA0E4FFFFFFFFFFD4914B0700000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000003F84C9FFFFFFFFFFFFFEB9742F00000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000002468ADF2FFFFFFFFFFFFFFE29E5714000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000084D92D6FFFFFFFFFFFFFFFFFFC7823D000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000003175BAFFFFFFFFFFFFFFFFFFFFF0AC66220000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000016599FE4FFFFFFFFFFFFFFFFFFFFFFD4904B0600000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000003E83C8FFFFFFFFFFFFFFFFFFFFFFFFFDB9742F00000000000000000000000000000000000000000000
000000000000000000000000000000000000000000002367ADF1FFFFFFFFFFFFFFFFFFFFFFFFFFE29D5713000000000000000000000000000000000000000000
000000000000000000000000000000000000000000074C91D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6823D000000000000000000000000000000000000000000
0000000000000000000000000000000000000000003074BAFEFFFFFFFFFFF6D8CFDAFFFFFFFFFFFFEFAC66210000000000000000000000000000000000000000
000000000000000000000000000000000000000015599EE3FFFFFFFFFFF5BC897F90C7FFFFFFFFFFFFD38F4A0500000000000000000000000000000000000000
00000000000000000000000000000000000000003E82C7FFFFFFFFFFFFC0844B30568FCDFFFFFFFFFFFDB8732E00000000000000000000000000000000000000
000000000000000000000000000000000000002266ACF0FFFFFFFFFFFDAE5E13001F6EBEFFFFFFFFFFFFE19C5613000000000000000000000000000000000000
000000000000000000000000000000000000064B90D4FFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFC5813C000000000000000000000000000000000000
0000000000000000000000000000000000002F74B9FDFFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFEFAB65200000000000000000000000000000000000
000000000000000000000000000000000014579DE2FFFFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFFFD38F490500000000000000000000000000000000
00000000000000000000000000000000003D81C6FFFFFFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFFFFCB7722E00000000000000000000000000000000
000000000000000000000000000000002166ACEFFFFFFFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFFFFFE09C5612000000000000000000000000000000
000000000000000000000000000000064A90D3FFFFFFFFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFFFFFFFC4803B000000000000000000000000000000
0000000000000000000000000000002E73B8FDFFFFFFFFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFFFFFFFEEAB64200000000000000000000000000000
000000000000000000000000000013569CE1FFFFFFFFFFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFFFFFFFFFD28E490400000000000000000000000000
00000000000000000000000000003C80C5FFFFFFFFFFFFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFFFFFFFFFFBB7722D00000000000000000000000000
000000000000000000000000002065ABEFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFFFFFFFFFFFE09B5512000000000000000000000000
00000000000000000000000005498FD2FFFFFFFFFFFFFFFFFFFFFFFFFBAB5B0B001A6ABAFFFFFFFFFFFFFFFFFFFFFFFFFFC47F3B000000000000000000000000
0000000000000000000000002D72B7FCFFFFFFFFFFFFFFFFFFFFFFFFFFB26222002D71C1FFFFFFFFFFFFFFFFFFFFFFFFFFEDAA641F0000000000000000000000
000000000000000000000012559CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFCC935B45669ED8FFFFFFFFFFFFFFFFFFFFFFFFFFFFD28D480400000000000000000000
00000000000000000000003B80C4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC9F95A3D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB6712D00000000000000000000
000000000000000000001F64AAEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDE5F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9B5411000000000000000000
00000000000000000004488ED2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC47F3B000000000000000000
0000000000000000002D71B6FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDA9631F0000000000000000
000000000000000011559BDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD18D480300000000000000
00000000000000003B7FC4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB6702C00000000000000
000000000000001F63AAEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9A5410000000000000
00000000000003488DD1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC37E3A000000000000
0000000000002C70B6FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECA9631E0000000000
000000000010549ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD18C470200000000
0000000000397EC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B5702A00000000
00000000165DA4EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD974F07000000
000000002676C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB66616000000
000000002E7ECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE6E1E000000
000000003686CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF7626000000
000000001A60A6E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD98520C000000
000000000039799ABCCDD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CCB7956F2B00000000
0000000000093052737D8080808080808080808080808080808080808080808080808080808080808080808080808080808080808080807C6B4B290000000000
000000000000000A272D3030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302C2402000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000132908000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000003B792B000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000004B8A3C000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000D5B9B4C000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001E6CAB5C0E0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000002F7EBC6D1F0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000003F8ECC7E300000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000F293D4A1D509FDD8F402B4939250A000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000233F5A748B7D2E60AFEEA0513E8C886F553A1D00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000001A41688BA6C1BA6B2371BFFEB0612D7CCABCA186633D180000000000000000000000000000000000000000
0000000000000000000000000000000000000010386087AED6F1F8AB5B3381D0FFC072246ABAFFECD0AB845E3101000000000000000000000000000000000000
00000000000000000000000000000000000018507EA7CDF4FFFFE79A4A4493E1FFD1823459A9F7FFFFF1CBA17141120000000000000000000000000000000000
0000000000000000000000000000000000175089C1EBFFFFFFFFD7893A54A4F1FFE294454999E6FFFFFFFFE1B2824F1600000000000000000000000000000000
00000000000000000000000000000000175089C1FAFFFFFFFFFFC6772A65B4FFFFF2A5553988D6FFFFFFFFFFF1C0874F16000000000000000000000000000000
000000000000000000000000000000175089C1FAFFFFFFFFFFE4B6672776C4FFFFFFB5662977C5E9FFFFFFFFFFF9C0874E0F0000000000000000000000000000
0000000000000000000000000000105089C1FAFFFFFFFFF4C79B79513887D5FFFFFFC576285C7FA3CFFCFFFFFFFFF9C07F3F0000000000000000000000000000
0000000000000000000000000000387EC1FAFFFFFFFFE0B1855830104898E5FFFFFFD688391535608DB9E9FFFFFFFFEFAE6E2E00000000000000000000000000
000000000000000000000000001A60A7EBFFFFFFFFE2A76F4216000B58A8F6FFFFFFE6984900001D4A79B1EAFFFFFFFFDE9E5711000000000000000000000000
000000000000000000000000004187CDFFFFFFFFE0A78B62380F001B69B8FFFFFFFFF7A9590C001740697FB1EAFFFFFFFFC57E38000000000000000000000000
0000000000000000000000002368AEF4FFFFFFF4B16F66A87D522A2C7BC9FFFFFFFFFFBA6A1C325C859E577ABDFFFFFFFFEAA45D160000000000000000000000
0000000000000000000000003F8CD6FFFFFFFFC885423F85C2996E458BD9FFFFFFFFFFCA7C4E77A0BC76304E91D3FFFFFFFFC97E320000000000000000000000
00000000000000000000000E5AA6F1FFFFFFE39C5816185DA3DDB38B9CEAFFFFFFFFFFDA8C93BCDB9650092264AAF0FFFFFFE49A4D0100000000000000000000
00000000000000000000002974C0FBEADACABA79300000367CC2F8CFCBFFFFFFFFFFFFF7C6D7FAB46D2800003C86BDCDDDEEFEB3681C00000000000000000000
00000000000000000000003C8BBDAD9D8C7C6B5210061727549BE0FFFFFFFFFFFFFFFFFFFFFFD28D472413031D5B6E7F8FA0B0C07D2F00000000000000000000
00000000000000000000004B7F6E5D4D3D2D2434445465758697D8FFFFFFFFFFFFFFFFFFFFFFC993827261514131213041506171823C00000000000000000000
00000000000000000000001E302131415161728293A4B4C4D4E5FFFFFFFFFFFFFFFFFFFFFFFFFAE1D1C1B1A1907F6F5E4E3E2E23321700000000000000000000
000000000000000D1D2E3E4E5E6F7F90A1B1C1D1E1F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEDECEBDAD9D8D7C6B5B4B3B2A1A09000000000000
00000000133B4B5B6B7C8D9DADBDCEDEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCEBDBCABAAB9A89796857483706000000
0000000029798A9AAABACBDBECFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E8D8C8B7A797866919000000
00000000082B3B4B5B6C7D8D9EAEBECEDEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCECDBCBBAAB9A8A79685848382800000000
00000000000000000D1E2E3E4E5E6F8090A1B1C1D1E2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDECEBEAE9E8D7D6C5B4B3B2B1A0A00000000000000
00000000000000000000002C40302131425262728394A4B4C4D5F8FFFFFFFFFFFFFFFFFFFFFFEDD1C1B1A190806F5E4E3E2E2333422300000000000000000000
0000000000000000000000498F7E6D5D4D3D2C24354554657687D5FFFFFFFFFFFFFFFFFFFFFFC6837262524231213040506071818B3B00000000000000000000
00000000000000000000003A88CCBCAC9C8B7B5E150007175DA3E8FFFFFFFFFFFFFFFFFFFFFFDB964F14030022687E8F9FAFBFC97A2C00000000000000000000
0000000000000000000000246FBBFFFAEAD9C87F3500003E84CBEAC1BDFDFFFFFFFFFFEFB6C9F2BC77300000428DCCDDEDFDFAAE611700000000000000000000
00000000000000000000000A55A1ECFFFFFFE9A4611E1F65ACCFA67C99E7FFFFFFFFFFD78984AFD79D56112A6CAFF6FFFFFFDF95480000000000000000000000
0000000000000000000000003B86D0FFFFFFFFD08D4A468DB48B613988D6FFFFFFFFFFC677406993BC7E395599DBFFFFFFFFC3792D0000000000000000000000
0000000000000000000000001C63ABF1FFFFFFFCB9796D996E461C2977C5FFFFFFFFFFB66719254E78A16083C4FFFFFFFFE49D550F0000000000000000000000
000000000000000000000000003E85CBFFFFFFFFEAB17E532B01001866B5FFFFFFFFF4A656080009325C87BBF4FFFFFFFFBE7730000000000000000000000000
00000000000000000000000000185FA1E1FFFFFFFFEAB17A4E21000755A5F3FFFFFFE3954600002A5583BBF6FFFFFFFFD696520B000000000000000000000000
00000000000000000000000000003071B2F1FFFFFFFFEABE91643C1D4594E2FFFFFFD2833622426C99C4F4FFFFFFFFE7A7662500000000000000000000000000
0000000000000000000000000000014183C0F9FFFFFFFFFFD3A986583583D1FFFFFFC27325668DAEDBFFFFFFFFFFEFB676360000000000000000000000000000
000000000000000000000000000000124F87C0F9FFFFFFFFFFF0B96A2472C1FFFFFFB1622C7BC9F6FFFFFFFFFFEFB67D45060000000000000000000000000000
00000000000000000000000000000000164F87C0EFFFFFFFFFFFC97B2D61B0FEFFEFA1523C8BD9FFFFFFFFFFE6B67D450C000000000000000000000000000000
0000000000000000000000000000000000174F7FAEDEFFFFFFFFDA8C3D51A0EEFFDE90424D9CEAFFFFFFFFD6A776450C00000000000000000000000000000000
0000000000000000000000000000000000000F3F6E9FC5EBFFFFEB9D4E418FDDFFCE7F315DACFAFFFFE4BE966636060000000000000000000000000000000000
00000000000000000000000000000000000000002E577EA4C9E4FBAD5E307ECDFFBE6E206EBDFADFC39D77522500000000000000000000000000000000000000
00000000000000000000000000000000000000000011385D7E9AB3BD6F216DBCFBAD5D307FC9AE957956300B0000000000000000000000000000000000000000
000000000000000000000000000000000000000000000016324D667D80305CACEA9C4D408B7A61482D1000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000011C2F3C164C9BDA8C3D223B2C1700000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000003C8BC97B2C0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000002B7AB96A1C0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001B69A9590B0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000A589849000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000488738000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000376928000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000061900000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000122B3F4446433C2B1A090000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000002A455E778F9496938A7968573D1A000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000017426E92ABC4DDE4E6E3D8C7B7A78563411F00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000002E5986B1DDF6FFFFFFFFFFFFFFFFF0CEAB896330000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000037709DC9F4FFFFFFFFFFFFFFFFFFFFFFFFF4D1A16E3B0900000000000000000000000000000000000000
0000000000000000000000000000000000000000003770A8E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAC79470D000000000000000000000000000000000000
00000000000000000000000000000000000000003770A8E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAB77C3D000000000000000000000000000000000000
000000000000000000000000000000000000002E6FA8E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDAD6D2D0000000000000000000000000000000000
0000000000000000000000000000000000001A5C9EE0FFFFFFFFFFFFFFFFF8F1EFF3FFFFFFFFFFFFFFFFFFFFDD9E5E1D00000000000000000000000000000000
000000000000000000000000000000000007488BCCFFFFFFFFFFFFFFE0C6ACA19FA3B7CCE3FFFFFFFFFFFFFFFFCD8E4A01000000000000000000000000000000
00000000000000000000000000000000003576B8FAFFFFFFFFFFF0C1967A5F514F53697F9DC8F1FFFFFFFFFFFFFEB56A22000000000000000000000000000000
000000000000000000000000000000001860A4E6FFFFFFFFFFE1AF80512E140100071C325883ADE5FFFFFFFFFFFFD68E44000000000000000000000000000000
000000000000000000000000000000003B82CBFFFFFFFFFFE9AC703F1100000000000000153F74AEE8FFFFFFFFFFF7AE661D0000000000000000000000000000
000000000000000000000000000000165EA7EEFFFFFFFFF1B4783B00000000000000000000033D78B1F3FFFFFFFFFFD0873D0000000000000000000000000000
0000000000000000000000000000003980C9FFFFFFFFFFC68043070000000000000000000000064085CAFFFFFFFFFFF1A6570A00000000000000000000000000
0000000000000000000000000000135BA3EBFFFFFFFFE29D561300000000000000000000000000175CA1E7FFFFFFFFFFB96B1D00000000000000000000000000
00000000000000000000000000002C78C5FFFFFFFFFFBA742F0000000000000000000000000000003379C1FFFFFFFFFFCD7F3100000000000000000000000000
00000000000000000000000000004491DDFFFFFFFFE1974C07000000000000000000000000000000105BA6F2FFFFFFFFE0934500000000000000000000000000
000000000000000000000000000F5BA8F4FFFFFFFFC4792E0000000000000000000000000000000000408CD7FFFFFFFFF3A6580A000000000000000000000000
000000000000000000000000002773C0FFFFFFFFF1A75C120000000000000000000000000000000000256FBBFFFFFFFFFFB96B1D000000000000000000000000
000000000000000000000000003F8CD8FFFFFFFFD98B3E0000000000000000000000000000000000000D5BAAF9FFFFFFFFC57525000000000000000000000000
0000000000000000000000000251A1EFFFFFFFFFC5772A000000000000000000000000000000000000004C9CEAFFFFFFFFCC7D2C000000000000000000000000
0000000000000000000000000E5DADFCFFFFFFFFB26417000000000000000000000000000000000000003D8CDBFFFFFFFFD48334000000000000000000000000
0000000000000000000000001B69B9FFFFFFFFEDA05103000000000000000000000000000000000000002F7DCCFFFFFFFFDB8B3B000000000000000000000000
0000000000000000000000002676C5FFFFFFFFE1914100000000000000000000000000000000000000002776C6FFFFFFFFE29343000000000000000000000000
0000000000000000000000003282D1FFFFFFFFD7883800000000000000000000000000000000000000002272C2FFFFFFFFEA9A4A000000000000000000000000
0000000000000000000000003F8EDDFFFFFFFFCE7E2F00000000000000000000000000000000000000001D6DBDFFFFFFFFF0A050000000000000000000000000
0000000000000000000000004494E4FFFFFFFFC5752500000000000000000000000000000000000000001867B8FFFFFFFFEF9F4F000000000000000000000000
0000000000000000000000004696E6FFFFFFFFC0702000000000000000000000000000000612121212121767B7FFFFFFFFEE9E4E121212120E00000000000000
0000000000000000000000004798E8FFFFFFFFBE6E1E00000000000000000000000000004662626262626269B9FFFFFFFFED9D62626262625514000000000000
0000000000000000000000004797E7FFFFFFFFBF6F1F00000000000000000000000000004180B2B2B2B2B2B2D2FFFFFFFFFDBDB2B2B2B293520E000000000000
0000000000000000000000004595E5FFFFFFFFC0702000000000000000000000000000000F4E8DCCFFFFFFFFFFFFFFFFFFFFFFFFFFE3A3622300000000000000
0000000000000000000000004393E3FFFFFFFFC676270000000000000000000000000000001D5C9BDAFFFFFFFFFFFFFFFFFFFFFFF3B373330000000000000000
0000000000000000000000003A89D9FFFFFFFFCF8030000000000000000000000000000000002A69A8E7FFFFFFFFFFFFFFFFFFFFC48343030000000000000000
0000000000000000000000002E7DCDFFFFFFFFD8893900000000000000000000000000000000003878B5F4FFFFFFFFFFFFFFFFD4945313000000000000000000
0000000000000000000000002271C0FFFFFFFFE293430000000000000000000000000000000000064584C3FFFFFFFFFFFFFFE4A4632400000000000000000000
0000000000000000000000001665B5FFFFFFFFF0A354060000000000000000000000000000000000135291D0FFFFFFFFFFF4B474340000000000000000000000
0000000000000000000000000A58A8F8FFFFFFFFB56619000000000000000000000000000000000000215F9EDDFFFFFFFFC48443040000000000000000000000
000000000000000000000000004C9BE6FFFFFFFFC87B2D000000000000000000000000000000000000002D6CACEBFFFFD5955414000000000000000000000000
000000000000000000000000003682CFFFFFFFFFDC8F4300000000000000000000000000000000000000003B7AB8F7E5A5642400000000000000000000000000
000000000000000000000000001E6AB7FFFFFFFFF6AB601600000000000000000000000000000000000000094887C6B574350000000000000000000000000000
000000000000000000000000000652A0ECFFFFFFFFC97E3300000000000000000000000000000000000000001755958545050000000000000000000000000000
00000000000000000000000000003C89D5FFFFFFFFE69D520D000000000000000000000000000000000000000024635515000000000000000000000000000000
00000000000000000000000000002470BBFFFFFFFFFFC07A35000000000000000000000000000000000000000000201900000000000000000000000000000000
0000000000000000000000000000085199E0FFFFFFFFE8A35E190000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000002E76BEFFFFFFFFFFCC874B0E00000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000B539CE4FFFFFFFFF8BC804308000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000003179C1FFFFFFFFFFF1B478491A0000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000E5699DAFFFFFFFFFFE9B98B5B39200D0500000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000296BAEEFFFFFFFFFFFFACBA0866A5D4C07000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000003D80C2FFFFFFFFFFFFFFEBD1B7AD6111000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000105295D6FFFFFFFFFFFFFFFFFFB16111000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000025659ED7FFFFFFFFFFFFFFFFB16111000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000002C659FD8FFFFFFFFFFFFFFB16111000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000002D66A0D6FFFFFFFFFFFFB16111000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000002F6794C0ECFFFFFFFFB16111000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000025507DAAD5EDFFFFB16111000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000E3B6689A2BAD3B16111000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000223C546D85896111000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000092235393200000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -0,0 +1,65 @@
#EDF // Generate with EGAMI (64,64)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000001020303437353326160600000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000001C3B4E5E6E7F8487858374645444270800000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000004284766859EAEBDCDD4D7D5D3C3B3A391705233120000000000000000000000000000000000000000000000000000000000
0000000000000000000000000019467092B0CFECFCFFFFFFFFFFFFFFFFF1DABA9D7D552900000000000000000000000000000000000000000000000000000000
0000000000000000000000012F5B89B5DAF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFE5C4986B3E120000000000000000000000000000000000000000000000000000
00000000000000000000033C719ECBF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAAE81501800000000000000000000000000000000000000000000000000
000000000000000000033C74AEE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C1875018000000000000000000000000000000000000000000000000
0000000000000000013C74AEE5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC18750170000000000000000000000000000000000000000000000
00000000000000002F71AEE5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC187460400000000000000000000000000000000000000000000
00000000000000195B9EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B5733000000000000000000000000000000000000000000000
000000000000044689CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2A05E1B000000000000000000000000000000000000000000
0000000000002770B5F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD8B41000000000000000000000000000000000000000000
0000000000004792DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4AA61170000000000000000000000000000000000000000
00000000001C66B0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA80360000000000000000000000000000000000000000
00000000003B85CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9A1550B00000000000000000000000000000000000000
00000000004E9EECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB96A1C00000000000000000000000000000000000000
00000000105EAEFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC97B2C00000000000000000000000000000000000000
00000000206EBDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD98B3C00000000000000000000000000000000000000
00000000307FCDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE99B4B00000000000000000000000000000000000000
000000003484D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A05000000000000000000000000000000000000000
000000003787D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A35303000000000000000000000000000000000000
000000003585D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A25202000000000000000000000000000000000000
000000003382D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC9D4D00000000000000000000000000000000000000
000000002674C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF904000000000000000000000000000000000000000
000000001664B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2833400000000000000000000000000000000000000
000000000654A3F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE712600000000000000000000000000000000000000
00000000004491DAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEA3570C00000000000000000000000000000000000000
00000000002770BAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4893C0000000000000000000000000000000000000000
000000000008529DE5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB96D220000000000000000000000000000000000000000
000000000000337CC4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB9852070000000000000000000000000000000000000000
000000000000125598DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B06C29000000000000000000000000000000000000000000
00000000000000296BAEF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF864100000000000000000000000000000000000000000000
00000000000000003E81C1FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2A76E35050300000000000000000000000000000000000000
0000000000000000125087C1FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA76E505248280000000000000000000000000000000000
000000000000000000185087C1F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA79AA298683000000000000000000000000000000000
00000000000000000000185087B5E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D2E6FFFFFFFFFFEAE5F1D9A16930000000000000000000000000000000
0000000000000000000000174673A0CDF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBB086ABE4FFFFFFFFFFFFFFFFDAA169300000000000000000000000000000
00000000000000000000000004315E8BAACAE9FFFFFFFFFFFFFFFFFFFFFFEFD4BA986C4272ABE4FFFFFFFFFFFFFFFFDAA1693000000000000000000000000000
00000000000000000000000000001B426180A1B9C9D9E9F0F3F2ECDFD2BEA3896D5329013A72ABECFFFFFFFFFFFFFFFFDAA16930000000000000000000000000
000000000000000000000000000000001736556A7B8B9BA0A3A29D908371573D2208000004509CE6FFFFFFFFFFFFFFFFFFDAA169300000000000000000000000
0000000000000000000000000000000000000B1C2C3C4B5053524D4134260C00000000000453A3F2FFFFFFFFFFFFFFFFFFFFDAA1693000000000000000000000
000000000000000000000000000000000000000000000000030200000000000000000000004798D9FFFFFFFFFFFFFFFFFFFFFFDAA16930000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000002968A1DAFFFFFFFFFFFFFFFFFFFFFFDAA169300000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFDAA1693000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFDAA16930000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFDAA169300000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFDAA1692D00000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFDA9E5E16000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFFFBC6C1C000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFFFFFBC6C1C000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFFFFFD89C5C15000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFFFFFD8A0672B00000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFFFFFD8A0672F0000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003069A1DAFFFFD8A0672F000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030699EBCBC9C672F00000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002D5E6C6C5C2B0000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000161C1C15000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@@ -1,6 +0,0 @@
#!/usr/bin/python
import lutinModule
import lutinTools
lutinModule.ImportPath(lutinTools.GetCurrentPath(__file__) + "/sources/")
lutinModule.ImportPath(lutinTools.GetCurrentPath(__file__) + "/../ewol/")

134
lutin_edn.py Normal file
View File

@@ -0,0 +1,134 @@
#!/usr/bin/python
import lutin.module as module
import lutin.tools as tools
import lutin.debug as debug
import os
def get_type():
return "BINARY"
def get_name():
return "Editeur de N'ours"
def get_desc():
return "Text editor for sources code with ctags management"
def get_licence():
return "GPL-3"
def get_compagny_type():
return "org"
def get_compagny_name():
return "Edouard DUPIN"
def get_maintainer():
return ["Mr DUPIN Edouard <yui.heero@gmail.com>"]
def get_version():
return [1,3,0]
def get_version_id():
return 6
def create(target, module_name):
my_module = module.Module(__file__, module_name, get_type())
my_module.add_extra_compile_flags()
my_module.add_src_file([
'sources/appl/ctags/readtags.cpp'
])
my_module.add_src_file([
'sources/appl/debug.cpp',
'sources/appl/global.cpp',
'sources/appl/globalMsg.cpp',
'sources/appl/init.cpp'
])
# Gui:
my_module.add_src_file([
'sources/appl/Gui/BufferView.cpp',
'sources/appl/Gui/TextViewer.cpp',
'sources/appl/Gui/ViewerManager.cpp',
'sources/appl/Gui/MainWindows.cpp',
'sources/appl/Gui/Search.cpp',
'sources/appl/Gui/TagFileSelection.cpp',
'sources/appl/Gui/TagFileList.cpp',
'sources/appl/Gui/WorkerSaveFile.cpp',
'sources/appl/Gui/WorkerSaveAllFile.cpp',
'sources/appl/Gui/WorkerCloseFile.cpp',
'sources/appl/Gui/WorkerCloseAllFile.cpp'
])
# All needed for the buffer management :
my_module.add_src_file([
'sources/appl/Buffer.cpp',
'sources/appl/BufferManager.cpp',
'sources/appl/TextPlugin.cpp',
'sources/appl/TextPluginCopy.cpp',
'sources/appl/TextPluginMultiLineTab.cpp',
'sources/appl/TextPluginAutoIndent.cpp',
'sources/appl/TextPluginHistory.cpp',
'sources/appl/TextPluginRmLine.cpp',
'sources/appl/TextPluginSelectAll.cpp',
'sources/appl/TextPluginCtags.cpp',
'sources/appl/TextPluginManager.cpp'
])
# Generic color management for the text editor :
my_module.add_src_file([
'sources/appl/GlyphDecoration.cpp',
'sources/appl/GlyphPainting.cpp'
])
# syntax coloration for the text editor
my_module.add_src_file([
'sources/appl/HighlightPattern.cpp',
'sources/appl/Highlight.cpp',
'sources/appl/HighlightManager.cpp'
])
my_module.add_module_depend(['ewol'])
my_module.copy_path('data/icon.*','')
my_module.copy_path('data/languages/gcov/*.xml','languages/gcov/')
my_module.copy_path('data/languages/asm/*.xml','languages/asm/')
my_module.copy_path('data/languages/bash/*.xml','languages/bash/')
my_module.copy_path('data/languages/boo/*.xml','languages/boo/')
my_module.copy_path('data/languages/cpp/*.xml','languages/cpp/')
my_module.copy_path('data/languages/c/*.xml','languages/c/')
my_module.copy_path('data/languages/cmake/*.xml','languages/cmake/')
my_module.copy_path('data/languages/glsl/*.xml','languages/glsl/')
my_module.copy_path('data/languages/in/*.xml','languages/in/')
my_module.copy_path('data/languages/java/*.xml','languages/java/')
my_module.copy_path('data/languages/json/*.xml','languages/json/')
my_module.copy_path('data/languages/lua/*.xml','languages/lua/')
my_module.copy_path('data/languages/makefile/*.xml','languages/makefile/')
my_module.copy_path('data/languages/matlab/*.xml','languages/matlab/')
my_module.copy_path('data/languages/php/*.xml','languages/php/')
my_module.copy_path('data/languages/xml/*.xml','languages/xml/')
my_module.copy_path('data/languages/python/*.xml','languages/python/')
my_module.copy_path('data/theme/default/*.svg','theme/shape/square/')
my_module.copy_path('data/theme/default/*.edf','theme/shape/square/')
my_module.copy_path('data/theme/colorWhite/*.json','theme/color/white/')
my_module.copy_path('data/theme/colorBlack/*.json','theme/color/black/')
my_module.copy_path('data/GUI-Search.xml','')
my_module.add_path(os.path.join(tools.get_current_path(__file__), "sources"))
my_module.copy_file("data/Font/freefont/FreeSerif.ttf","fonts/FreeSerif.ttf")
my_module.copy_path("data/Font/freefont/FreeMon*.ttf","fonts/")
my_module.compile_flags('c', [
"-DPROJECT_NAME=\"\\\""+my_module.name+"\\\"\"",
"-DAPPL_VERSION=\"\\\"" + tools.version_to_string(get_version()) + "\\\"\""
])
versionIDCode = str(get_version_id())
# set the package properties:
my_module.pkg_set("VERSION_CODE", versionIDCode)
if target.name=="MacOs":
my_module.pkg_set("ICON", os.path.join(tools.get_current_path(__file__), "data/icon.icns"))
else:
my_module.pkg_set("ICON", os.path.join(tools.get_current_path(__file__), "data/icon.png"))
my_module.pkg_set("SECTION", ["Development", "Editors"])
my_module.pkg_set("PRIORITY", "optional")
my_module.pkg_add("RIGHT", "WRITE_EXTERNAL_STORAGE")
my_module.pkg_add("RIGHT", "SET_ORIENTATION")
return my_module

110
sources/CMakeLists.txt Normal file
View File

@@ -0,0 +1,110 @@
cmake_minimum_required(VERSION 2.8)
# Declare the project
project(edn)
##
## Include C++ X11 dependency ... (check correct flags)
##
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
else()
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
endif()
# set output path:
set(LIBRARY_OUTPUT_PATH lib/${CMAKE_BUILD_TYPE})
include_directories(.)
#Create src file list
set(src_files
appl/ctags/readtags.cpp
appl/debug.cpp
appl/global.cpp
appl/globalMsg.cpp
appl/init.cpp
appl/Gui/BufferView.cpp
appl/Gui/TextViewer.cpp
appl/Gui/ViewerManager.cpp
appl/Gui/MainWindows.cpp
appl/Gui/Search.cpp
appl/Gui/TagFileSelection.cpp
appl/Gui/TagFileList.cpp
appl/Gui/WorkerSaveFile.cpp
appl/Gui/WorkerSaveAllFile.cpp
appl/Gui/WorkerCloseFile.cpp
appl/Gui/WorkerCloseAllFile.cpp
appl/Buffer.cpp
appl/BufferManager.cpp
appl/TextPlugin.cpp
appl/TextPluginCopy.cpp
appl/TextPluginMultiLineTab.cpp
appl/TextPluginAutoIndent.cpp
appl/TextPluginHistory.cpp
appl/TextPluginRmLine.cpp
appl/TextPluginSelectAll.cpp
appl/TextPluginCtags.cpp
appl/TextPluginManager.cpp
appl/GlyphDecoration.cpp
appl/GlyphPainting.cpp
appl/HighlightPattern.cpp
appl/Highlight.cpp
appl/HighlightManager.cpp
)
add_definitions( -DDEBUG_LEVEL=3 )
add_definitions( -DDEBUG=1 )
add_definitions( -DPROJECT_NAME="edn" )
if (APPLE)
add_definitions( -D__TARGET_OS__MacOs )
elseif (UNIX)
add_definitions( -D__TARGET_OS__Linux )
elseif (WIN32)
add_definitions( -D__TARGET_OS__Windows )
endif ()
# read version :
file (STRINGS "tag" BUILD_VERSION)
add_definitions( -DAPPL_VERSION="${BUILD_VERSION}" )
#Create a static Lib:
add_executable(edn ${src_files} )
include_directories(${zlib_SOURCE_DIR}/contrib/)
include_directories(${linearmath_SOURCE_DIR}/bullet/src/)
include_directories(${etk_SOURCE_DIR})
include_directories(${freetype_SOURCE_DIR})
include_directories(${exml_SOURCE_DIR})
include_directories(${ejson_SOURCE_DIR})
include_directories(${egami_SOURCE_DIR})
include_directories(${edtaa3_SOURCE_DIR})
include_directories(${date_SOURCE_DIR})
include_directories(${agg_SOURCE_DIR})
include_directories(${ewol_SOURCE_DIR})
#target_link_libraries(edn ewol)
target_link_libraries(edn ewol linearmath zlib etk freetype exml ejson egami edtaa3 date esvg png)
if (APPLE)
target_link_libraries(edn
"-framework Cocoa"
"-framework OpenGL"
"-framework QuartzCore"
"-framework AppKit"
)
elseif (UNIX)
target_link_libraries(edn -lGL -lX11 -lpthread)
elseif (WIN32)
endif ()

View File

@@ -1,51 +1,43 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <etk/types.h>
#include <etk/stdTools.h>
#include <appl/Buffer.h>
#include <appl/debug.h>
#include <ewol/clipBoard.h>
#include <gale/context/clipBoard.h>
#include <appl/HighlightManager.h>
const char* const appl::Buffer::eventIsModify = "edn-is-modify";
const char* const appl::Buffer::eventIsSave = "edn-is-save";
const char* const appl::Buffer::eventSelectChange = "edn-select-change";
const char* const appl::Buffer::eventChangeName = "edn-buffer-name-change";
appl::Buffer::Iterator& appl::Buffer::Iterator::operator++ (void) {
m_value = etk::UChar::Null;
appl::Buffer::Iterator& appl::Buffer::Iterator::operator++ () {
m_value = u32char::Null;
if (m_current < 0) {
m_current = 0;
return *this;
}
if (m_data != NULL) {
if (m_current < m_data->m_data.size() ) {
int8_t nbChar = etk::UChar::theoricUTF8Len(m_data->m_data[m_current]);
if (m_data != nullptr) {
if (m_current < (int64_t)m_data->m_data.size() ) {
int8_t nbChar = utf8::theoricLen(m_data->m_data[m_current]);
if (nbChar != 0) {
m_current+=nbChar;
} else {
m_current++;
}
}
if (m_current >= m_data->m_data.size()) {
if (m_current >= (int64_t)m_data->m_data.size()) {
m_current = m_data->m_data.size();
}
}
return *this;
}
appl::Buffer::Iterator& appl::Buffer::Iterator::operator-- (void) {
m_value = etk::UChar::Null;
if (m_data != NULL) {
appl::Buffer::Iterator& appl::Buffer::Iterator::operator-- () {
m_value = u32char::Null;
if (m_data != nullptr) {
if (m_current > 0) {
int32_t iii = -1;
while( etk::UChar::theoricUTF8First(m_data->m_data[m_current+iii]) == false
while( utf8::theoricFirst(m_data->m_data[m_current+iii]) == false
&& iii >= -6
&& m_current-iii>0) {
--iii;
@@ -61,28 +53,28 @@ appl::Buffer::Iterator& appl::Buffer::Iterator::operator-- (void) {
return *this;
}
char32_t appl::Buffer::Iterator::operator* (void) {
if (m_value != etk::UChar::Null) {
char32_t appl::Buffer::Iterator::operator* () {
if (m_value != u32char::Null) {
return m_value;
}
if (m_data == NULL) {
if (m_data == nullptr) {
APPL_ERROR("request an element that iterator not link");
return m_value;
}
if ( m_current < 0
|| m_current >= m_data->m_data.size()) {
|| m_current >= (int64_t)m_data->m_data.size()) {
APPL_ERROR("request an element out of bounding !!! 0 <= " << m_current << " < " << m_data->m_data.size());
return m_value;
}
char tmpVal[5];
memset(tmpVal, 0, sizeof(tmpVal));
tmpVal[0] = m_data->m_data[m_current];
int8_t nbChar = etk::UChar::theoricUTF8Len(tmpVal[0]);
for (int32_t iii=1; iii<nbChar && m_current+iii<m_data->m_data.size(); ++iii) {
int8_t nbChar = utf8::theoricLen(tmpVal[0]);
for (int32_t iii=1; iii<nbChar && m_current+iii<(int64_t)m_data->m_data.size(); ++iii) {
tmpVal[iii] = m_data->m_data[m_current+iii];
}
// transform ...
m_value = etk::setUtf8(tmpVal);
m_value = utf8::convertChar32(tmpVal);
return m_value;
}
@@ -91,32 +83,35 @@ appl::Buffer::Iterator appl::Buffer::position(int64_t _pos) {
return appl::Buffer::Iterator(this, _pos);
}
appl::Buffer::Iterator appl::Buffer::begin(void) {
appl::Buffer::Iterator appl::Buffer::begin() {
return position(0);
}
appl::Buffer::Iterator appl::Buffer::end(void) {
appl::Buffer::Iterator appl::Buffer::end() {
// TODO : chek the validity of the char ...
return position( m_data.size() );
}
appl::Buffer::Iterator appl::Buffer::cursor(void) {
appl::Buffer::Iterator appl::Buffer::cursor() {
if (m_cursorPos<= 0) {
return begin();
}
return position( m_cursorPos );
}
appl::Buffer::Iterator appl::Buffer::selectStart(void) {
appl::Buffer::Iterator appl::Buffer::selectStart() {
return position( getStartSelectionPos() );
}
appl::Buffer::Iterator appl::Buffer::selectStop(void) {
appl::Buffer::Iterator appl::Buffer::selectStop() {
return position( getStopSelectionPos() );
}
appl::Buffer::Buffer(void) :
appl::Buffer::Buffer() :
signalIsModify(this, "is-modify", ""),
signalIsSave(this, "is-save", ""),
signalSelectChange(this, "select-change", ""),
signalChangeName(this, "change-name", ""),
m_hasFileName(false),
m_fileName(""),
m_isModify(false),
@@ -124,63 +119,72 @@ appl::Buffer::Buffer(void) :
m_cursorSelectPos(-1),
m_cursorPreferredCol(-1),
m_nbLines(1),
m_highlight(NULL) {
m_highlight(nullptr) {
addObjectType("appl::Buffer");
static int32_t bufferBaseId = 0;
m_fileName = "No Name " + std::to_string(bufferBaseId);
m_fileName = "No Name " + etk::to_string(bufferBaseId);
bufferBaseId++;
addEventId(eventIsModify);
addEventId(eventIsSave);
addEventId(eventSelectChange);
addEventId(eventChangeName);
}
appl::Buffer::~Buffer(void) {
if (m_highlight == NULL) {
appl::Highlight::release(m_highlight);
}
void appl::Buffer::init() {
ewol::Object::init();
}
appl::Buffer::~Buffer() {
APPL_ERROR("REAL remove buffer : '" << propertyName << "'");
}
bool appl::Buffer::loadFile(const std::string& _name) {
APPL_DEBUG("Load file : '" << _name << "'");
m_fileName = _name;
APPL_DEBUG("Convert filename :'" << _name << "'");
etk::FSNode file(_name);
std::string name = file.getName();
APPL_INFO("Load file : '" << name << "'");
m_fileName = name;
m_hasFileName = true;
m_isModify = true;
m_cursorPos = 0;
setHighlightType("");
etk::FSNode file(m_fileName);
m_nbLines = 0;
if (file.exist() == false) {
APPL_INFO("File doesn not exist !!! " << file);
APPL_ERROR("File : '" << m_fileName << "' does not exist...");
return false;
}
m_nbLines = 0;
if (true == m_data.dumpFrom(file) ) {
countNumberofLine();
tryFindHighlightType();
m_isModify = false;
return true;
if (file.fileOpenRead() == false) {
APPL_ERROR("File : '" << m_fileName << "' Fail to open in read mode");
return false;
}
return false;
m_data = file.fileReadAllString();
file.fileClose();
countNumberofLine();
tryFindHighlightType();
m_isModify = false;
return true;
}
void appl::Buffer::setFileName(const std::string& _name) {
if (m_fileName == _name) {
APPL_DEBUG("Convert filename :'" << _name << "'");
etk::FSNode file(_name);
std::string name = file.getName();
if (m_fileName == name) {
return;
}
m_fileName = _name;
m_fileName = name;
m_hasFileName = true;
generateEventId(eventChangeName);
signalChangeName.emit();
setModification(true);
}
bool appl::Buffer::storeFile(void) {
bool appl::Buffer::storeFile() {
etk::FSNode file(m_fileName);
if (true == m_data.dumpIn(file) ) {
APPL_INFO("saving file : " << file);
setModification(false);
return true;
if (file.fileOpenWrite() == false) {
APPL_ERROR("File : '" << m_fileName << "' Fail to open in write mode");
return false;
}
return false;
file.fileWriteAll(m_data);
file.fileClose();
APPL_INFO("saving file : " << m_fileName);
setModification(false);
return true;
}
void appl::Buffer::setModification(bool _status) {
@@ -189,19 +193,19 @@ void appl::Buffer::setModification(bool _status) {
}
m_isModify = _status;
if (m_isModify == true) {
generateEventId(eventIsModify);
signalIsModify.emit();
} else {
generateEventId(eventIsSave);
signalIsSave.emit();
}
}
// TODO : Naming error
void appl::Buffer::countNumberofLine(void) {
void appl::Buffer::countNumberofLine() {
m_nbLines = 1;
for (Iterator it = begin();
(bool)it == true;
++it) {
if (*it == etk::UChar::Return) {
if (*it == u32char::Return) {
++m_nbLines;
}
}
@@ -210,7 +214,7 @@ void appl::Buffer::countNumberofLine(void) {
appl::Buffer::Iterator appl::Buffer::getStartLine(const appl::Buffer::Iterator& _pos) {
appl::Buffer::Iterator startPos;
if (false == searchBack(_pos, etk::UChar::Return, startPos)) {
if (false == searchBack(_pos, u32char::Return, startPos)) {
return begin();
}
// note search will return the position of \n ==> the lione start just after ...
@@ -219,7 +223,7 @@ appl::Buffer::Iterator appl::Buffer::getStartLine(const appl::Buffer::Iterator&
appl::Buffer::Iterator appl::Buffer::getEndLine(const appl::Buffer::Iterator& _pos) {
appl::Buffer::Iterator endPos;
if (false == search(_pos, etk::UChar::Return, endPos)) {
if (false == search(_pos, u32char::Return, endPos)) {
endPos = end();
}
// Note the line end at the \n
@@ -298,7 +302,7 @@ bool appl::Buffer::search(const appl::Buffer::Iterator& _pos,
for (Iterator it = _pos;
(bool)it == true;
++it) {
if (tolower(*it) == firstElement) {
if ((char32_t)tolower(*it) == firstElement) {
// find the first char ==> check next...
bool find = true;
Iterator tmp = it;
@@ -370,7 +374,7 @@ bool appl::Buffer::searchBack(const appl::Buffer::Iterator& _pos,
(bool)it == true;
--it) {
//APPL_DEBUG("compare : " << *it << " ?= " << _search);
if (tolower(*it) == lastElement) {
if ((char32_t)tolower(*it) == lastElement) {
// find the last char ==> check previous...
bool find = true;
_result = it;
@@ -414,13 +418,13 @@ void appl::Buffer::moveCursor(int64_t _pos) {
if (m_cursorPos == m_cursorSelectPos) {
m_cursorSelectPos = -1;
}
generateEventId(eventSelectChange);
signalSelectChange.emit();
return;
}
// move mode
m_cursorPos = _pos;
m_cursorSelectPos = -1;
generateEventId(eventSelectChange);
signalSelectChange.emit();
}
bool appl::Buffer::getPosAround(const appl::Buffer::Iterator& _startPos,
@@ -429,16 +433,16 @@ bool appl::Buffer::getPosAround(const appl::Buffer::Iterator& _startPos,
char32_t currentValue = *position(_startPos);
_beginPos = begin();
_endPos = end();
if ( currentValue == etk::UChar::Tabulation
|| currentValue == etk::UChar::Space) {
if ( currentValue == u32char::Tabulation
|| currentValue == u32char::Space) {
APPL_DEBUG("select spacer");
// Search back
for (Iterator it = --position(_startPos);
(bool)it == true;
--it) {
currentValue = *it;
if ( currentValue != etk::UChar::Tabulation
&& currentValue != etk::UChar::Space) {
if ( currentValue != u32char::Tabulation
&& currentValue != u32char::Space) {
_beginPos = ++it;
break;
}
@@ -448,14 +452,14 @@ bool appl::Buffer::getPosAround(const appl::Buffer::Iterator& _startPos,
(bool)it == true;
++it) {
currentValue = *it;
if ( currentValue != etk::UChar::Tabulation
&& currentValue != etk::UChar::Space) {
if ( currentValue != u32char::Tabulation
&& currentValue != u32char::Space) {
_endPos = it;
break;
}
}
return true;
} else if( etk::isSpecialChar(currentValue) == false
} else if( u32char::isSpecialChar(currentValue) == false
|| currentValue == '_') {
APPL_DEBUG("select normal Char");
// Search back
@@ -464,7 +468,7 @@ bool appl::Buffer::getPosAround(const appl::Buffer::Iterator& _startPos,
--it) {
currentValue = *it;
if ( currentValue != '_'
&& true == etk::isSpecialChar(currentValue)) {
&& u32char::isSpecialChar(currentValue) == true) {
_beginPos = ++it;
break;
}
@@ -475,7 +479,7 @@ bool appl::Buffer::getPosAround(const appl::Buffer::Iterator& _startPos,
++it) {
currentValue = *it;
if ( currentValue != '_'
&& true == etk::isSpecialChar(currentValue)) {
&& u32char::isSpecialChar(currentValue) == true) {
_endPos = it;
break;
}
@@ -513,12 +517,12 @@ bool appl::Buffer::getPosAround(const appl::Buffer::Iterator& _startPos,
void appl::Buffer::setSelectionPos(const appl::Buffer::Iterator& _pos) {
m_cursorSelectPos = _pos;
generateEventId(eventSelectChange);
signalSelectChange.emit();
}
void appl::Buffer::unSelect(void) {
void appl::Buffer::unSelect() {
m_cursorSelectPos = -1;
generateEventId(eventSelectChange);
signalSelectChange.emit();
}
static const char *ControlCodeTable[32] = {
@@ -528,21 +532,21 @@ static const char *ControlCodeTable[32] = {
void appl::Buffer::expand(int32_t& _indent, const char32_t& _value, std::u32string& _out) const {
_out.clear();
int32_t tabDist = 4;
if (_value == etk::UChar::Tabulation) {
if (_value == u32char::Tabulation) {
int32_t nSpaces = tabDist - (_indent % tabDist);
for (int32_t iii=0; iii<nSpaces; iii++) {
_out += etk::UChar::Space;
_out += u32char::Space;
}
return;
}
// convert ASCII control codes to readable character sequences
if (_value == etk::UChar::Null) {
if (_value == u32char::Null) {
_out += U"<nul>";
return;
}
if (_value == etk::UChar::Return) {
if (_value == u32char::Return) {
// nothing to display...
_out += etk::UChar::Return;
_out += u32char::Return;
return;
}
if (_value <= 31) {
@@ -555,7 +559,7 @@ void appl::Buffer::expand(int32_t& _indent, const char32_t& _value, std::u32stri
_out += '>';
return;
}
if (_value == etk::UChar::Delete) {
if (_value == u32char::Delete) {
_out += U"<del>";
return;
}
@@ -572,7 +576,7 @@ appl::Buffer::Iterator appl::Buffer::countForwardNLines(const appl::Buffer::Iter
(bool)it == true;
++it) {
value = *it;
if (value == etk::UChar::Return) {
if (value == u32char::Return) {
lineCount++;
if (lineCount == _nLines) {
//APPL_INFO(" == > (1) at position=" << myPosIt.Position()+1 );
@@ -592,7 +596,7 @@ appl::Buffer::Iterator appl::Buffer::countBackwardNLines(const appl::Buffer::Ite
(bool)it == true;
--it) {
value = *it;
if (value == etk::UChar::Return) {
if (value == u32char::Return) {
lineCount++;
if (lineCount >= _nLines) {
//APPL_INFO(" == > (1) at position=" << myPosIt.Position()+1 );
@@ -624,8 +628,6 @@ bool appl::Buffer::copy(std::string& _data) {
void appl::Buffer::copy(std::string& _data, const appl::Buffer::Iterator& _pos, const appl::Buffer::Iterator& _posEnd) {
_data.clear();
int64_t startPos = getStartSelectionPos();
int64_t endPos = getStopSelectionPos();
for (Iterator it = _pos;
it != _posEnd &&
(bool)it == true;
@@ -639,8 +641,8 @@ bool appl::Buffer::write(const std::string& _data, const appl::Buffer::Iterator&
if (position < 0){
position = 0;
}
APPL_ERROR("writye at pos: " << (int64_t)_pos << " ==> " << position);
m_data.insert(position, (int8_t*)(_data.c_str()), _data.size());
APPL_VERBOSE("write at pos: " << (int64_t)_pos << " ==> " << position << " data : " << _data);
m_data.insert((size_t)position, _data);
if (m_cursorPos < 0) {
m_cursorPos = 0;
}
@@ -657,7 +659,7 @@ bool appl::Buffer::replace(const std::string& _data, const appl::Buffer::Iterato
if (position < 0){
position = 0;
}
m_data.replace(position, (int64_t)_posEnd-(int64_t)_pos, (int8_t*)(_data.c_str()), _data.size());
m_data.replace(m_data.begin() + position, m_data.begin() + (int64_t)_posEnd, _data.begin(), _data.end());
regenerateHighLightAt(position, (int64_t)_posEnd-(int64_t)_pos, _data.size());
m_selectMode = false;
moveCursor(position+_data.size());
@@ -666,13 +668,13 @@ bool appl::Buffer::replace(const std::string& _data, const appl::Buffer::Iterato
return true;
}
void appl::Buffer::removeSelection(void) {
void appl::Buffer::removeSelection() {
if (hasTextSelected() == false) {
return;
}
int64_t startPos = getStartSelectionPos();
int64_t endPos = getStopSelectionPos();
m_data.remove(startPos, endPos-startPos);
m_data.erase(startPos, endPos-startPos);
regenerateHighLightAt(startPos, endPos-startPos, 0);
m_selectMode = false;
moveCursor(startPos);
@@ -680,9 +682,9 @@ void appl::Buffer::removeSelection(void) {
setModification(true);
}
void appl::Buffer::tryFindHighlightType(void) {
void appl::Buffer::tryFindHighlightType() {
etk::FSNode file(m_fileName);
std::string type = appl::highlightManager::getTypeExtention(file.fileGetExtention());
std::string type = appl::highlightManager::getTypeFile(file.getNameFile());
if (type.size() == 0) {
return;
}
@@ -693,21 +695,19 @@ void appl::Buffer::tryFindHighlightType(void) {
void appl::Buffer::setHighlightType(const std::string& _type) {
m_highlightType = "";
cleanHighLight();
if (m_highlight == NULL) {
appl::Highlight::release(m_highlight);
}
m_highlight.reset();
std::string resourceName = appl::highlightManager::getFileWithTypeType(_type);
if (resourceName == "") {
return;
}
m_highlightType = _type;
m_highlight = appl::Highlight::keep(resourceName);
m_highlight = appl::Highlight::create(resourceName);
generateHighLightAt(0, m_data.size());
}
void appl::Buffer::regenerateHighLightAt(int64_t _pos, int64_t _nbDeleted, int64_t _nbAdded) {
// prevent ERROR...
if (NULL == m_highlight) {
if (m_highlight == nullptr) {
return;
}
// prevent No data Call
@@ -716,7 +716,7 @@ void appl::Buffer::regenerateHighLightAt(int64_t _pos, int64_t _nbDeleted, int64
return;
}
// normal case
//APPL_INFO("(pos="<<pos<<", nbDeleted="<<nbDeleted<<", nbAdded=" << nbAdded << "\");");
APPL_VERBOSE("(_pos="<<_pos<<", _nbDeleted="<<_nbDeleted<<", _nbAdded=" << _nbAdded << "\");");
int64_t posEnd = _pos + _nbDeleted;
// search position of the old element to reparse IT...
int64_t startId;
@@ -729,60 +729,71 @@ void appl::Buffer::regenerateHighLightAt(int64_t _pos, int64_t _nbDeleted, int64
}
// find element previous
findMainHighLightPosition(_pos, posEnd, startId, stopId, true);
APPL_VERBOSE(" list old parse:");
for (auto &elem : m_HLDataPass1) {
APPL_VERBOSE(" " << elem.start << "=>" << elem.stop);
}
// Remove previous element to prevent many errors like parsing of // for example
startId--;
APPL_VERBOSE("Find startId=" << startId << " stopId=" << stopId << " list size=" << m_HLDataPass1.size());
// remove deprecated element
if ( startId == -1
&& stopId == -1) {
if ( startId <= -1
&& stopId <= -1) {
m_HLDataPass1.clear();
} else if (startId == -1) {
APPL_VERBOSE("1 * clear");
} else if (startId <= -1) {
if (stopId == 0){
m_HLDataPass1.erase(m_HLDataPass1.begin());
//APPL_DEBUG("1 * Erase 0");
APPL_VERBOSE("1 * Erase 0");
} else {
m_HLDataPass1.erase(m_HLDataPass1.begin(), m_HLDataPass1.begin()+stopId);
//APPL_DEBUG("2 * Erase 0->" << stopId);
APPL_VERBOSE("2 * Erase 0->" << stopId);
}
} else if (stopId == -1) {
//APPL_DEBUG("3 * Erase " << startId+1 << "-> end");
} else if (stopId <= -1) {
APPL_VERBOSE("3 * Erase " << startId+1 << "-> end");
m_HLDataPass1.erase(m_HLDataPass1.begin()+startId+1, m_HLDataPass1.end());
stopId = -1;
} else {
int32_t currentSize = m_HLDataPass1.size();
//APPL_DEBUG("4 * Erase " << startId+1 << "->" << stopId << " in " << currentSize << " elements" );
m_HLDataPass1.erase(m_HLDataPass1.begin()+startId+1, m_HLDataPass1.begin()+stopId);
APPL_VERBOSE("4 * Erase " << startId+1 << "->" << stopId << " in " << currentSize << " elements" );
m_HLDataPass1.erase(m_HLDataPass1.begin()+startId+1, m_HLDataPass1.begin()+stopId+1);
if (stopId == currentSize-1) {
stopId = -1;
}
}
//APPL_DEBUG("new size=" << (int32_t)m_HLDataPass1.size()-1);
APPL_VERBOSE(" list afterRemove:");
for (auto &elem : m_HLDataPass1) {
APPL_VERBOSE(" " << elem.start << "=>" << elem.stop);
}
// update position after the range position :
int64_t elemStart;
if (startId == -1) {
if (startId <= -1) {
elemStart = 0;
} else {
elemStart = startId+1;
}
for (int64_t iii = elemStart; iii < m_HLDataPass1.size(); ++iii) {
for (auto it(m_HLDataPass1.begin()+elemStart); it != m_HLDataPass1.end(); ++it) {
//APPL_DEBUG("move element=" << i);
m_HLDataPass1[iii].beginStart += _nbAdded - _nbDeleted;
m_HLDataPass1[iii].beginStop += _nbAdded - _nbDeleted;
m_HLDataPass1[iii].endStart += _nbAdded - _nbDeleted;
m_HLDataPass1[iii].endStop += _nbAdded - _nbDeleted;
it->start += _nbAdded - _nbDeleted;
it->stop += _nbAdded - _nbDeleted;
}
//Regenerate Element inside range
if ( startId == -1
&& stopId == -1) {
//APPL_DEBUG("******* Regenerate ALL");
if ( startId <= -1
&& stopId <= -1) {
APPL_VERBOSE("******* Regenerate ALL");
generateHighLightAt(0, m_data.size());
} else if(-1 == startId) {
//APPL_DEBUG("******* Regenerate START");
generateHighLightAt(0, m_HLDataPass1[0].beginStart, 0);
} else if(-1 == stopId) {
//APPL_DEBUG("******* Regenerate STOP");
generateHighLightAt(m_HLDataPass1[m_HLDataPass1.size() -1].endStop, m_data.size(), m_HLDataPass1.size());
} else if(startId <= -1) {
APPL_VERBOSE("******* Regenerate START");
generateHighLightAt(0, m_HLDataPass1[0].start, 0);
} else if(stopId <= -1) {
APPL_VERBOSE("******* Regenerate STOP");
generateHighLightAt(m_HLDataPass1[m_HLDataPass1.size() -1].stop, m_data.size(), m_HLDataPass1.size());
} else {
//APPL_DEBUG("******* Regenerate RANGE");
generateHighLightAt(m_HLDataPass1[startId].endStop, m_HLDataPass1[startId+1].beginStart, startId+1);
APPL_VERBOSE("******* Regenerate RANGE");
generateHighLightAt(m_HLDataPass1[startId].stop, m_HLDataPass1[startId+1].start, startId+1);
}
}
@@ -830,8 +841,8 @@ void appl::Buffer::findMainHighLightPosition(int64_t _startPos,
------------ ------------- ----------
S=-1 *************** E
*/
for (int32_t iii = 0; iii < m_HLDataPass1.size(); ++iii) {
if (m_HLDataPass1[iii].endStop > _startPos) {
for (size_t iii = 0; iii < m_HLDataPass1.size(); ++iii) {
if (m_HLDataPass1[iii].stop > _startPos) {
break;
}
_startId = iii;
@@ -851,8 +862,8 @@ void appl::Buffer::findMainHighLightPosition(int64_t _startPos,
} else {
elemStart = _startId+1;
}
for (int32_t iii = elemStart; iii < m_HLDataPass1.size(); ++iii) {
if (m_HLDataPass1[iii].beginStart > _endPos) {
for (size_t iii = elemStart; iii < m_HLDataPass1.size(); ++iii) {
if (m_HLDataPass1[iii].start > _endPos) {
_stopId = iii;
break;
}
@@ -860,46 +871,47 @@ void appl::Buffer::findMainHighLightPosition(int64_t _startPos,
}
void appl::Buffer::generateHighLightAt(int64_t _pos, int64_t _endPos, int64_t _addingPos) {
if (NULL == m_highlight) {
if (m_highlight == nullptr) {
return;
}
//APPL_DEBUG("area : ("<<pos<<","<<endPos<<") insert at : " << addingPos);
m_highlight->parse(_pos, _endPos, m_HLDataPass1, _addingPos, m_data);
}
void appl::Buffer::cleanHighLight(void) {
void appl::Buffer::cleanHighLight() {
// remove all element in the list...
m_HLDataPass1.clear();
}
appl::HighlightInfo* appl::Buffer::getElementColorAtPosition(int64_t _pos, int64_t &_starPos) {
int32_t start = etk_max(0, _starPos-1);
for (int32_t iii = start; iii < m_HLDataPass1.size(); ++iii) {
int32_t start = std::max((int64_t)0, _starPos-1);
for (size_t iii = start; iii < m_HLDataPass1.size(); ++iii) {
_starPos = iii;
if ( m_HLDataPass1[iii].beginStart <= _pos
&& m_HLDataPass1[iii].endStop > _pos) {
if ( m_HLDataPass1[iii].start <= _pos
&& m_HLDataPass1[iii].stop > _pos) {
return &m_HLDataPass1[iii];
}
if(m_HLDataPass1[iii].beginStart > _pos) {
return NULL;
if(m_HLDataPass1[iii].start > _pos) {
return nullptr;
}
}
return NULL;
return nullptr;
}
void appl::Buffer::hightlightGenerateLines(appl::DisplayHLData& _MData, int64_t _HLStart, int64_t _nbLines) {
void appl::Buffer::hightlightGenerateLines(appl::DisplayHLData& _MData, const appl::Buffer::Iterator& _HLStart, int64_t _nbLines) {
_MData.posHLPass1 = 0;
_MData.posHLPass2 = 0;
if (NULL == m_highlight) {
if (m_highlight == nullptr) {
return;
}
//GTimeVal timeStart;
//g_get_current_time(&timeStart);
_HLStart = (int32_t)getStartLine(position(_HLStart));
//int64_t timeStart = ewol::getTime();
appl::Buffer::Iterator HLStartLine = getStartLine(_HLStart);
int64_t HLStartPos = (int64_t)HLStartLine;
_MData.HLData.clear();
int64_t HLStop = countForwardNLines(position(_HLStart), _nbLines);
int64_t HLStop = (int64_t)countForwardNLines(HLStartLine, _nbLines);
int64_t startId = 0;
int64_t stopId = 0;
// find element previous
@@ -911,67 +923,76 @@ void appl::Buffer::hightlightGenerateLines(appl::DisplayHLData& _MData, int64_t
endSearch = m_HLDataPass1.size();
}
int64_t kkk;
for (kkk = etk_max(startId, 0); kkk < endSearch; ++kkk) {
for (kkk = std::max(startId, (int64_t)0); kkk < endSearch; ++kkk) {
// empty section :
if (kkk == 0) {
if (_HLStart < m_HLDataPass1[kkk].beginStart) {
//APPL_DEBUG(" == > (empty section 1 ) k="<<k<<" start="<<HLStart<<" stop="<<m_HLDataPass1[k].beginStart );
m_highlight->parse2(_HLStart,
m_HLDataPass1[kkk].beginStart,
_MData.HLData,
m_data);
if (HLStartPos < m_HLDataPass1[kkk].start) {
APPL_VERBOSE(" == > (empty section 1 ) kkk=" << kkk <<
" start=" << HLStartPos <<
" stop=" << m_HLDataPass1[kkk].start );
m_highlight->parse2(HLStartPos,
m_HLDataPass1[kkk].start,
_MData.HLData,
m_data);
} // else : nothing to do ...
} else {
//APPL_DEBUG(" == > (empty section 2 ) k="<<k<<" start="<<m_HLDataPass1[k-1].endStop<<" stop="<<m_HLDataPass1[k].beginStart );
m_highlight->parse2(m_HLDataPass1[kkk-1].endStop,
m_HLDataPass1[kkk].beginStart,
_MData.HLData,
m_data);
APPL_VERBOSE(" == > (empty section 2 ) kkk=" << kkk <<
" start=" << m_HLDataPass1[kkk-1].stop <<
" stop=" << m_HLDataPass1[kkk].start );
m_highlight->parse2(m_HLDataPass1[kkk-1].stop,
m_HLDataPass1[kkk].start,
_MData.HLData,
m_data);
}
// under section :
//APPL_DEBUG(" == > (under section ) k="<<k<<" start="<<m_HLDataPass1[k].beginStart<<" stop="<<m_HLDataPass1[k].endStop << " subSectionOfID=" << 99999999);
// TODO : ...
APPL_VERBOSE(" == > (under section ) kkk="<<kkk<<" start="<<m_HLDataPass1[kkk].start<<" stop="<<m_HLDataPass1[kkk].stop << " subSectionOfID=" << 99999999);
m_highlight->parseSubElement(m_HLDataPass1[kkk],
_MData.HLData,
m_data);
}
if (endSearch == (int32_t)m_HLDataPass1.size() ){
//if( k < (int32_t)m_HLDataPass1.size()) {
if (m_HLDataPass1.size() != 0) {
//APPL_DEBUG(" == > (empty section 3 ) k="<<k<<" start="<<m_HLDataPass1[k-1].endStop<<" stop="<<HLStop );
m_highlight->parse2(m_HLDataPass1[kkk-1].endStop,
HLStop,
_MData.HLData,
m_data);
APPL_VERBOSE(" == > (empty section 3 ) kkk=" << kkk <<
" start=" << m_HLDataPass1[kkk-1].stop <<
" stop=" << HLStop );
m_highlight->parse2(m_HLDataPass1[kkk-1].stop,
HLStop,
_MData.HLData,
m_data);
} else {
//APPL_DEBUG(" == > (empty section 4 ) k="<<k<<" start=0 stop="<<HLStop );
APPL_VERBOSE(" == > (empty section 4 ) kkk=" << kkk <<
" start=0 stop=" << HLStop );
m_highlight->parse2(0,
HLStop,
_MData.HLData,
m_data);
HLStop,
_MData.HLData,
m_data);
}
}
//GTimeVal timeStop;
//g_get_current_time(&timeStop);
//APPL_DEBUG("Display reAnnalyse = " << timeStop.tv_usec - timeStart.tv_usec << " micro-s");
/*
int64_t timeStop = ewol::getTime();
APPL_DEBUG("Display 2nd pass = " << (timeStop-timeStart)/1000.0f << " milli-second");
*/
}
appl::HighlightInfo* appl::Buffer::getElementColorAtPosition(appl::DisplayHLData& _MData, int64_t _pos) {
int64_t start = etk_max(0, _MData.posHLPass2-1);
int64_t start = std::max((int64_t)0, _MData.posHLPass2-1);
for (int64_t iii=start; iii<(int32_t)_MData.HLData.size(); iii++) {
_MData.posHLPass2 = iii;
if( _MData.HLData[iii].beginStart <= _pos
&& _MData.HLData[iii].endStop > _pos)
if( _MData.HLData[iii].start <= _pos
&& _MData.HLData[iii].stop > _pos)
{
return &_MData.HLData[iii];
}
if(_MData.HLData[iii].beginStart > _pos) {
if(_MData.HLData[iii].start > _pos) {
return getElementColorAtPosition(_pos, _MData.posHLPass1);
}
}
return getElementColorAtPosition(_pos, _MData.posHLPass1);
}
uint32_t appl::Buffer::getCursorLinesId(void) {
uint32_t appl::Buffer::getCursorLinesId() {
if (m_data.size() == 0) {
return 0;
}
@@ -979,9 +1000,52 @@ uint32_t appl::Buffer::getCursorLinesId(void) {
for (Iterator it = begin();
(bool)it == true && it <= cursor();
++it) {
if (*it == etk::UChar::Return) {
if (*it == u32char::Return) {
++line;
}
}
return line;
}
}
namespace etk {
template<> std::string to_string<ememory::SharedPtr<appl::Buffer>>(const ememory::SharedPtr<appl::Buffer>& _obj) {
if (_obj != nullptr) {
return _obj->getFileName();
}
return "";
}
template<> std::u32string to_u32string<ememory::SharedPtr<appl::Buffer>>(const ememory::SharedPtr<appl::Buffer>& _obj) {
return etk::to_u32string(etk::to_string(_obj));
}
template<> bool from_string<ememory::SharedPtr<appl::Buffer>>(ememory::SharedPtr<appl::Buffer>& _variableRet, const std::string& _value) {
if (_variableRet != nullptr) {
_variableRet->loadFile(_value);
return true;
}
return false;
}
template<> bool from_string<ememory::SharedPtr<appl::Buffer>>(ememory::SharedPtr<appl::Buffer>& _variableRet, const std::u32string& _value) {
return from_string(_variableRet, etk::to_string(_value));
}
template<> std::string to_string<appl::Buffer>(const appl::Buffer& _obj) {
return _obj.getFileName();
}
template<> std::u32string to_u32string<appl::Buffer>(const appl::Buffer& _obj) {
return etk::to_u32string(etk::to_string(_obj));
}
template<> bool from_string<appl::Buffer>(appl::Buffer& _variableRet, const std::string& _value) {
_variableRet.loadFile(_value);
return true;
}
template<> bool from_string<appl::Buffer>(appl::Buffer& _variableRet, const std::u32string& _value) {
return from_string(_variableRet, etk::to_string(_value));
}
};
#include <esignal/details/Signal.hxx>
// declare for signal event
ESIGNAL_DECLARE_SIGNAL(ememory::SharedPtr<appl::Buffer>);

View File

@@ -1,23 +1,18 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#pragma once
#ifndef __APPL_BUFFER_H__
#define __APPL_BUFFER_H__
#include <etk/UString.h>
#include <etk/types.h>
#include <etk/os/FSNode.h>
#include <etk/unicode.h>
#include <ewol/ewol.h>
#include <etk/Buffer.h>
#include <ewol/renderer/EObject.h>
#include <ewol/object/Object.h>
#include <ewol/widget/Widget.h>
#include <ewol/compositing/Text.h>
#include <appl/Highlight.h>
#include <esignal/Signal.h>
namespace appl {
@@ -27,7 +22,10 @@ namespace appl {
int64_t posHLPass1;
int64_t posHLPass2;
};
class Buffer : public ewol::EObject {
class Buffer;
using BufferShared = ememory::SharedPtr<appl::Buffer>;
using BufferWeak = ememory::WeakPtr<appl::Buffer>;
class Buffer : public ewol::Object {
public:
class Iterator {
// Private data :
@@ -39,10 +37,10 @@ namespace appl {
/**
* @brief Basic itarator constructor with no link.
*/
Iterator(void):
Iterator():
m_current(0),
m_data(NULL),
m_value(etk::UChar::Null) {
m_data(nullptr),
m_value(u32char::Null) {
// nothing to do ...
};
/**
@@ -52,7 +50,7 @@ namespace appl {
Iterator(const Iterator & _obj):
m_current(_obj.m_current),
m_data(_obj.m_data),
m_value(etk::UChar::Null) {
m_value(u32char::Null) {
// nothing to do ...
};
/**
@@ -63,26 +61,26 @@ namespace appl {
Iterator& operator=(const Iterator & _obj) {
m_current = _obj.m_current;
m_data = _obj.m_data;
m_value = etk::UChar::Null;
m_value = u32char::Null;
return *this;
};
/**
* @brief Basic destructor
*/
~Iterator(void) {
virtual ~Iterator() {
m_current = 0;
m_data = NULL;
m_value = etk::UChar::Null;
m_data = nullptr;
m_value = u32char::Null;
};
/**
* @brief basic boolean cast
* @return true if the element is present in buffer
*/
operator bool (void) const {
if (m_data == NULL) {
operator bool () const {
if (m_data == nullptr) {
return false;
}
if (m_current >= m_data->m_data.size()) {
if (m_current >= (int64_t)m_data->m_data.size()) {
return false;
}
if (m_current < 0) {
@@ -94,15 +92,15 @@ namespace appl {
* @brief basic boolean cast
* @return true if the element is present in buffer
*/
operator int64_t (void) const {
if (m_data == NULL) {
operator int64_t () const {
if (m_data == nullptr) {
return 0;
}
if (m_current < 0) {
return 0;
}
if (m_current > m_data->m_data.size()) {
return m_data->m_data.size();
if (m_current > (int64_t)m_data->m_data.size()) {
return (int64_t)m_data->m_data.size();
}
return m_current;
};
@@ -110,12 +108,12 @@ namespace appl {
* @brief Incremental operator
* @return Reference on the current iterator incremented
*/
Iterator& operator++ (void);
Iterator& operator++ ();
/**
* @brief Decremental operator
* @return Reference on the current iterator decremented
*/
Iterator& operator-- (void);
Iterator& operator-- ();
/**
* @brief Incremental operator
* @return Reference on a new iterator and increment the other one
@@ -212,19 +210,19 @@ namespace appl {
* @brief Get the value on the current element
* @return The request element value
*/
char32_t operator* (void);
char32_t operator* ();
/**
* @brief Get the position in the buffer
* @return The requested position.
*/
int64_t getPos(void) const {
if (m_data == NULL) {
int64_t getPos() const {
if (m_data == nullptr) {
return 0;
}
if (m_current < 0) {
return 0;
}
if (m_current >= m_data->m_data.size()) {
if (m_current >= (int64_t)m_data->m_data.size()) {
return m_data->m_data.size()-1;
}
return m_current;
@@ -249,7 +247,7 @@ namespace appl {
};
Iterator operator+ (const size_t _val) const {
Iterator tmpp(*this);
for (int64_t iii=0; iii<_val; ++iii) {
for (int64_t iii=0; iii<(int64_t)_val; ++iii) {
++tmpp;
}
return tmpp;
@@ -274,7 +272,7 @@ namespace appl {
};
Iterator operator- (const size_t _val) const {
Iterator tmpp(*this);
for (int64_t iii=0; iii<_val; ++iii) {
for (int64_t iii=0; iii<(int64_t)_val; ++iii) {
--tmpp;
}
return tmpp;
@@ -283,19 +281,22 @@ namespace appl {
Iterator(Buffer* _obj, int64_t _pos) :
m_current(_pos),
m_data(_obj),
m_value(etk::UChar::Null) {
m_value(u32char::Null) {
// nothing to do ...
};
friend class Buffer;
};
public:
static const char* const eventIsModify;
static const char* const eventIsSave;
static const char* const eventSelectChange;
static const char* const eventChangeName;
esignal::Signal<> signalIsModify;
esignal::Signal<> signalIsSave;
esignal::Signal<> signalSelectChange;
esignal::Signal<> signalChangeName;
protected:
Buffer();
void init();
public:
Buffer(void);
~Buffer(void);
DECLARE_FACTORY(Buffer);
virtual ~Buffer();
private:
bool m_hasFileName; //!< when new file, the buffer has no name ==> but it might be reference with a single name ...
std::string m_fileName; //!< name of the file (with his path)
@@ -303,14 +304,14 @@ namespace appl {
/**
* @brief get the curent filename of the Buffer
*/
const std::string& getFileName(void) {
const std::string& getFileName() const {
return m_fileName;
}
/**
* @brief Check if the buffer has a real filename.
* @return the status of the existance of a name.
*/
bool hasFileName(void) {
bool hasFileName() const {
return m_hasFileName;
}
/**
@@ -328,7 +329,7 @@ namespace appl {
* @brief save the file in the specify path.
* @return true is saving well done
*/
bool storeFile(void);
bool storeFile();
protected:
bool m_isModify; //!< true if the file is modify
public:
@@ -336,7 +337,7 @@ namespace appl {
* @breif get the status of file modification.
* @return true if file is modify.
*/
bool isModify(void) {
bool isModify() const {
return m_isModify;
}
/**
@@ -345,9 +346,9 @@ namespace appl {
*/
void setModification(bool _status);
protected:
etk::Buffer m_data; //!< copy of the file buffer
std::string m_data; //!< copy of the file buffer
public:
etk::Buffer& getData(void) {
std::string& getData() {
return m_data;
};
protected:
@@ -365,31 +366,31 @@ namespace appl {
/**
* @brief Remove Selection of the buffer.
*/
void unSelect(void);
void unSelect();
/**
* @brief Remove the selection of the buffer. (do nothing if no secection)
*/
void removeSelection(void);
void removeSelection();
/**
* @brief Get the status of selection.
* @return true if we have a curent selection, false otherwise.
*/
bool hasTextSelected(void) {
bool hasTextSelected() {
return m_cursorSelectPos >= 0;
}
/**
* @brief Get the Start position of the selection.
* @return position of the start selection.
*/
int64_t getStartSelectionPos(void) {
return etk_min(m_cursorPos, m_cursorSelectPos);
int64_t getStartSelectionPos() {
return std::min(m_cursorPos, m_cursorSelectPos);
}
/**
* @brief Get the Stop position of the selection.
* @return position of the stop selection.
*/
int64_t getStopSelectionPos(void) {
return etk_max(m_cursorPos, m_cursorSelectPos);
int64_t getStopSelectionPos() {
return std::max(m_cursorPos, m_cursorSelectPos);
}
protected:
float m_cursorPreferredCol; //!< position of the cursor when up and down is done.
@@ -405,7 +406,7 @@ namespace appl {
* @brief Get the favorite distance from the left screen (For up and down moving).
* @return The distance in pixels.
*/
float getFavoriteUpDownPos(void) {
float getFavoriteUpDownPos() {
return m_cursorPreferredCol;
}
protected:
@@ -422,7 +423,7 @@ namespace appl {
* @brief Get the selection mode (if true, the move event creata a selection)
* @return The selecting mode.
*/
bool getSelectMode(void) {
bool getSelectMode() {
return m_selectMode;
}
public:
@@ -545,27 +546,27 @@ namespace appl {
* @brief Get an Iterator on the start position.
* @return The Iterator
*/
Iterator begin(void);
Iterator begin();
/**
* @brief Get an Iterator on the end position.
* @return The Iterator
*/
Iterator end(void);
Iterator end();
/**
* @brief Get an Iterator on the cursor position.
* @return The Iterator
*/
Iterator cursor(void);
Iterator cursor();
/**
* @brief Get an Iterator on the start selection.
* @return The Iterator
*/
Iterator selectStart(void);
Iterator selectStart();
/**
* @brief Get an Iterator on the stop selection.
* @return The Iterator
*/
Iterator selectStop(void);
Iterator selectStop();
protected:
int32_t m_nbLines; //!< number of line in the buffer
public:
@@ -573,29 +574,29 @@ namespace appl {
* @brief Get the number of line in the buffer.
* @return number of line in the Buffer.
*/
int32_t getNumberOfLines(void) {
int32_t getNumberOfLines() {
return m_nbLines;
}
/**
* @brief Get the cursor line numberin the buffer.
* @return the line id in the Buffer.
*/
uint32_t getCursorLinesId(void);
uint32_t getCursorLinesId();
protected:
/**
* @brief Count the number of line in the buffer
*/
void countNumberofLine(void);
void countNumberofLine();
protected:
std::string m_highlightType; //!< Name of the highlight type
appl::Highlight* m_highlight; //!< internal link with the Highlight system
ememory::SharedPtr<appl::Highlight> m_highlight; //!< internal link with the Highlight system
std::vector<appl::HighlightInfo> m_HLDataPass1; //!< colorisation position in the current buffer pass 1
public:
/**
* @brief Find the Highligh capability
*/
void tryFindHighlightType(void);
void tryFindHighlightType();
/**
* @brief Set type of highlight
* @param[in] _type type of the highlight
@@ -605,7 +606,7 @@ namespace appl {
* @brief Get type of highlight
* @return Type of the highlight
*/
const std::string& setHighlightType(void) {
const std::string& setHighlightType() {
return m_highlightType;
};
@@ -616,12 +617,9 @@ namespace appl {
int64_t& _stopId,
bool _backPreviousNotEnded);
void generateHighLightAt(int64_t _pos, int64_t _endPos, int64_t _addingPos=0);
void cleanHighLight(void);
void cleanHighLight();
appl::HighlightInfo* getElementColorAtPosition(int64_t _pos, int64_t &_starPos);
void hightlightGenerateLines(appl::DisplayHLData& _MData, int64_t _HLStart, int64_t _nbLines);
void hightlightGenerateLines(appl::DisplayHLData& _MData, const appl::Buffer::Iterator& _HLStart, int64_t _nbLines);
appl::HighlightInfo* getElementColorAtPosition(appl::DisplayHLData& _MData, int64_t _pos);
};
};
#endif
}

View File

@@ -1,103 +1,110 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <etk/types.h>
#include <etk/os/FSNode.h>
#include <appl/debug.h>
#include <appl/global.h>
#include <appl/BufferManager.h>
#include <ewol/renderer/EObject.h>
#include <ewol/renderer/EObjectManager.h>
#include <ewol/object/Object.h>
#include <ewol/object/Manager.h>
#include <esignal/Signal.h>
#include <gale/resource/Manager.h>
#undef __class__
#define __class__ "BufferManager"
appl::BufferManager::BufferManager(void) :
ewol::Resource("???BufferManager???"),
m_bufferSelected(NULL) {
appl::BufferManager::BufferManager() :
signalNewBuffer(this, "new-buffer", ""),
signalSelectFile(this, "select-buffer", ""),
signalTextSelectionChange(this, "text-selection-change", ""),
signalRemoveBuffer(this, "remove-buffer", "") {
addObjectType("appl::BufferManager");
}
appl::BufferManager::~BufferManager(void) {
int32_t previousCount = m_list.size();
for (int32_t iii = m_list.size()-1; iii >= 0 ; --iii) {
if (m_list[iii] == NULL) {
continue;
}
delete(m_list[iii]);
if (previousCount == m_list.size()) {
APPL_ERROR("Error in removing buffer !! ");
}
previousCount = m_list.size();
}
appl::BufferManager::~BufferManager() {
m_list.clear();
}
appl::Buffer* appl::BufferManager::createNewBuffer(void) {
appl::Buffer* tmp = new appl::Buffer();
if (tmp == NULL) {
ememory::SharedPtr<appl::Buffer> appl::BufferManager::createNewBuffer() {
ememory::SharedPtr<appl::Buffer> tmp = appl::Buffer::create();
if (tmp == nullptr) {
APPL_ERROR("Can not allocate the Buffer (empty).");
return NULL;
return nullptr;
}
tmp->setParent(ewol::Object::sharedFromThis());
m_list.push_back(tmp);
sendMultiCast(appl::MsgSelectNewFile, tmp->getFileName());
APPL_INFO("Create a new Buffer");
signalNewBuffer.emit(tmp->getFileName());
APPL_INFO("Create a new Buffer (done)");
APPL_INFO("select Buffer");
signalSelectFile.emit(tmp->getFileName());
APPL_INFO("select Buffer (done)");
return tmp;
}
appl::Buffer* appl::BufferManager::get(const std::string& _fileName, bool _createIfNeeded) {
for (int32_t iii = 0; iii < m_list.size(); ++iii) {
if (m_list[iii] == NULL) {
ememory::SharedPtr<appl::Buffer> appl::BufferManager::get(const std::string& _fileName, bool _createIfNeeded) {
APPL_INFO("get('" << _fileName << "'," << _createIfNeeded << ")");
for (auto &it : m_list) {
if (it == nullptr) {
continue;
}
if (m_list[iii]->getFileName() == _fileName) {
return m_list[iii];
if (it->getFileName() == _fileName) {
return it;
}
}
if (_createIfNeeded == true) {
if (etk::FSNodeGetType(_fileName) == etk::FSN_FOLDER) {
APPL_INFO("try open a folder : " << _fileName);
return NULL;
if (etk::FSNodeGetType(_fileName) == etk::typeNode_folder) {
APPL_WARNING("try open a folder : " << _fileName);
APPL_CRITICAL("plop");
return nullptr;
}
appl::Buffer* tmp = new appl::Buffer();
if (tmp == NULL) {
ememory::SharedPtr<appl::Buffer> tmp = appl::Buffer::create();
if (tmp == nullptr) {
APPL_ERROR("Can not allocate the Buffer class : " << _fileName);
return NULL;
return nullptr;
}
tmp->setParent(ewol::Object::sharedFromThis());
tmp->loadFile(_fileName);
m_list.push_back(tmp);
APPL_INFO("Creata a open Buffer");
signalNewBuffer.emit(tmp->getFileName());
APPL_INFO("Creata a open Buffer (done)");
return tmp;
}
return NULL;
}
void appl::BufferManager::setBufferSelected(appl::Buffer* _bufferSelected) {
m_bufferSelected = _bufferSelected;
sendMultiCast(appl::MsgSelectChange, "");
return nullptr;
}
void appl::BufferManager::onObjectRemove(ewol::EObject * _removeObject) {
if (m_bufferSelected == _removeObject) {
setBufferSelected(NULL);
}
for (int32_t iii = 0; iii < m_list.size(); ++iii) {
if (m_list[iii] != _removeObject) {
continue;
}
m_list[iii] = NULL;
m_list.erase(m_list.begin()+iii);
void appl::BufferManager::setBufferSelected(ememory::SharedPtr<appl::Buffer> _bufferSelected) {
m_bufferSelected = _bufferSelected;
if (m_bufferSelected == nullptr) {
APPL_ERROR("select a NULL buffer ...");
propertySetOnWidgetNamed("appl-widget-display-name", "value", "---");
return;
}
APPL_INFO("Set buffer selected");
//signalSelectFile.emit(m_bufferSelected->getName());
//propertySetOnWidgetNamed("appl-widget-display-name", "value", m_bufferSelected->getName());
APPL_INFO("Set buffer selected (done)");
}
ememory::SharedPtr<appl::Buffer> appl::BufferManager::get(int32_t _id) {
int32_t id = 0;
for (auto &it : m_list) {
if (id == _id) {
return it;
}
id++;
}
return m_list.back();
}
bool appl::BufferManager::exist(const std::string& _fileName) {
for (int32_t iii = 0; iii < m_list.size(); ++iii) {
if (m_list[iii] == NULL) {
for (auto &it : m_list) {
if (it == nullptr) {
continue;
}
if (m_list[iii]->getFileName() == _fileName) {
if (it->getFileName() == _fileName) {
return true;
}
}
@@ -106,40 +113,60 @@ bool appl::BufferManager::exist(const std::string& _fileName) {
void appl::BufferManager::open(const std::string& _fileName) {
if (exist(_fileName) == true) {
APPL_WARNING(" the element '" << _fileName << "' already exist ... just reselect it ...");
signalSelectFile.emit(_fileName);
propertySetOnWidgetNamed("appl-widget-display-name", "value", etk::FSNodeGetRealName(_fileName));
return;
}
if (get(_fileName, true) == NULL) {
if (get(_fileName, true) == nullptr) {
APPL_ERROR("Error get '" << _fileName << "' ... ");
return;
}
sendMultiCast(appl::MsgSelectNewFile, _fileName);
signalSelectFile.emit(_fileName);
propertySetOnWidgetNamed("appl-widget-display-name", "value", etk::FSNodeGetRealName(_fileName));
}
void appl::BufferManager::onReceiveMessage(const ewol::EMessage& _msg) {
APPL_DEBUG("receive message !!! " << _msg);
void appl::BufferManager::requestDestroyFromChild(const ememory::SharedPtr<Object>& _child) {
APPL_WARNING("Buffer request a close...");
bool find = false;
int32_t newValue = -1;
auto it = m_list.begin();
while(it != m_list.end()) {
if (*it == nullptr) {
it = m_list.erase(it);
continue;
}
if (*it == _child) {
it = m_list.erase(it);
find = true;
break;
}
newValue++;
++it;
}
if (find == true) {
signalRemoveBuffer.emit(ememory::dynamicPointerCast<appl::Buffer>(_child));
}
if (m_bufferSelected == _child) {
if ( it != m_list.end()
&& *it != nullptr) {
APPL_VERBOSE("Remove buffer select new one");
signalSelectFile.emit((*it)->getFileName());
propertySetOnWidgetNamed("appl-widget-display-name", "value", etk::FSNodeGetRealName((*it)->getFileName()));
APPL_VERBOSE("Remove buffer select new one (done)");
return;
}
if ( m_list.size() != 0
&& m_list.back() != nullptr) {
APPL_VERBOSE("Remove buffer select new one (last)");
signalSelectFile.emit(m_list.back()->getFileName());
propertySetOnWidgetNamed("appl-widget-display-name", "value", etk::FSNodeGetRealName(m_list.back()->getFileName()));
APPL_VERBOSE("Remove buffer select new one (done)");
return;
}
signalSelectFile.emit("");
propertySetOnWidgetNamed("appl-widget-display-name", "value", "---");
m_bufferSelected = nullptr;
}
}
appl::BufferManager* appl::BufferManager::keep(void) {
//EWOL_INFO("KEEP : appl::GlyphPainting : file : \"" << _filename << "\"");
appl::BufferManager* object = static_cast<appl::BufferManager*>(getManager().localKeep("???BufferManager???"));
if (NULL != object) {
return object;
}
// this element create a new one every time ....
EWOL_INFO("CREATE : appl::BufferManager: ???BufferManager???");
object = new appl::BufferManager();
if (NULL == object) {
EWOL_ERROR("allocation error of a resource : ???BufferManager???");
return NULL;
}
getManager().localAdd(object);
return object;
}
void appl::BufferManager::release(appl::BufferManager*& _object) {
if (NULL == _object) {
return;
}
ewol::Resource* object2 = static_cast<ewol::Resource*>(_object);
getManager().release(object2);
_object = NULL;
}

View File

@@ -1,26 +1,34 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#pragma once
#ifndef __BUFFER_MANAGER_H__
#define __BUFFER_MANAGER_H__
#include <list>
#include <appl/Buffer.h>
#include <appl/globalMsg.h>
#include <ewol/widget/Widget.h>
#include <ewol/resources/Resource.h>
#include <gale/resource/Resource.h>
namespace appl {
class BufferManager : public ewol::Resource {
class BufferManager;
using BufferManagerShared = ememory::SharedPtr<appl::BufferManager>;
using BufferManagerWeak = ememory::WeakPtr<appl::BufferManager>;
// TODO: This is a service ...
class BufferManager : public ewol::Object {
public:
esignal::Signal<std::string> signalNewBuffer;
esignal::Signal<std::string> signalSelectFile;
esignal::Signal<> signalTextSelectionChange;
esignal::Signal<ememory::SharedPtr<appl::Buffer>> signalRemoveBuffer;
protected:
BufferManager(void);
~BufferManager(void);
BufferManager();
public:
DECLARE_SINGLE_FACTORY(BufferManager, "???Buffer_Manager???");
virtual ~BufferManager();
private:
std::vector<appl::Buffer*> m_list; // list of all buffer curently open
std::list<ememory::SharedPtr<appl::Buffer>> m_list; // list of all buffer curently open
public:
/**
* @brief Get a specific buffer with his name (can create a new buffer).
@@ -28,7 +36,7 @@ namespace appl {
* @param[in] _createIfNeeded Create the buffer if not existed.
* @return a pointer on the buffer
*/
appl::Buffer* get(const std::string& _fileName, bool _createIfNeeded=false);
ememory::SharedPtr<appl::Buffer> get(const std::string& _fileName, bool _createIfNeeded=false);
/**
* @brief Load a specific file, event if it not existed:
* @param[in] _fileName Name of the file to open or create.
@@ -44,7 +52,7 @@ namespace appl {
* @brief Get count of all buffer availlable.
* @return Number of buffer
*/
int32_t size(void) const {
int32_t size() const {
return m_list.size();
}
/**
@@ -52,47 +60,44 @@ namespace appl {
* @param[in] _id Number of buffer
* @return pointer on the buffer
*/
appl::Buffer* get(int32_t _id) {
return m_list[_id];
}
ememory::SharedPtr<appl::Buffer> get(int32_t _id);
/**
* @brief Create a new buffer empty.
* @return Created buffer or NULL.
* @return Created buffer or nullptr.
*/
appl::Buffer* createNewBuffer(void);
ememory::SharedPtr<appl::Buffer> createNewBuffer();
private:
appl::Buffer* m_bufferSelected;
ememory::SharedPtr<appl::Buffer> m_bufferSelected;
public:
/**
* @brief Set the current buffer selected
* @param[in] _bufferSelected Pointer on the buffer selected
*/
void setBufferSelected(appl::Buffer* _bufferSelected);
void setBufferSelected(ememory::SharedPtr<appl::Buffer> _bufferSelected);
/**
* @brief Get the current buffer selected
* @return Pointer on the buffer selected
*/
appl::Buffer* getBufferSelected(void) {
ememory::SharedPtr<appl::Buffer> getBufferSelected() {
return m_bufferSelected;
};
public: // herited function
void onReceiveMessage(const ewol::EMessage& _msg);
void onObjectRemove(ewol::EObject * _removeObject);
public: // resource manager
/**
* @brief keep the resource pointer.
* @note Never free this pointer by your own...
* @param[in] _filename Name of the configuration file.
* @return pointer on the resource or NULL if an error occured.
*/
static appl::BufferManager* keep(void);
/**
* @brief release the keeped resources
* @param[in,out] reference on the object pointer
*/
static void release(appl::BufferManager*& _object);
private:
void requestDestroyFromChild(const ememory::SharedPtr<Object>& _child);
public:
// generic iterators:
std::list<ememory::SharedPtr<appl::Buffer>>::const_iterator begin() const {
return m_list.begin();
}
std::list<ememory::SharedPtr<appl::Buffer>>::const_iterator end() const {
return m_list.end();
}
std::list<ememory::SharedPtr<appl::Buffer>>::iterator begin() {
return m_list.begin();
}
std::list<ememory::SharedPtr<appl::Buffer>>::iterator end() {
return m_list.end();
}
};
};
}
#endif

View File

@@ -1,51 +1,40 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <appl/debug.h>
#include <appl/global.h>
#include <appl/GlyphDecoration.h>
#undef __class__
#define __class__ "GlyphDecoration"
appl::GlyphDecoration::GlyphDecoration(const std::string &_newColorName) :
m_colorName(_newColorName),
m_colorFG(etk::color::black),
m_colorBG(etk::color::none),
m_italic(false),
m_bold(false)
{
APPL_VERBOSE("New(" << __class__ << ")");
m_colorName(_newColorName),
m_colorFG(etk::color::black),
m_colorBG(etk::color::none),
m_italic(false),
m_bold(false) {
APPL_VERBOSE("create");
}
void appl::GlyphDecoration::setItalic(bool _enable)
{
void appl::GlyphDecoration::setItalic(bool _enable) {
m_italic = _enable;
if (true == _enable) {
if (_enable == true) {
APPL_VERBOSE("color : \"" << m_colorName << "\" enable italic");
} else {
APPL_VERBOSE("color : \"" << m_colorName << "\" disable italic");
}
}
void appl::GlyphDecoration::setBold(bool _enable)
{
void appl::GlyphDecoration::setBold(bool _enable) {
m_bold = _enable;
if (true == _enable) {
if (_enable == true) {
APPL_VERBOSE("color : \"" << m_colorName << "\" enable bold");
} else {
APPL_VERBOSE("color : \"" << m_colorName << "\" disable bold");
}
}
etk::CCout& appl::operator <<(etk::CCout& _os, const appl::GlyphDecoration& _obj)
{
std::ostream& appl::operator <<(std::ostream& _os, const appl::GlyphDecoration& _obj) {
_os << "{fg=" << _obj.getForeground();
_os << ",bg=" << _obj.getBackground();
_os << ",italic=" << _obj.getItalic();

View File

@@ -1,23 +1,19 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#ifndef __GLYPH_DECORATION_H__
#define __GLYPH_DECORATION_H__
#pragma once
#include <etk/Color.h>
#include <etk/UString.h>
#include <etk/types.h>
namespace appl {
class GlyphDecoration {
public:
// Constructeur
GlyphDecoration(const std::string& _newColorName = "no_name");
~GlyphDecoration(void) {
virtual ~GlyphDecoration() {
// nothing to do ...
};
private:
@@ -34,7 +30,7 @@ namespace appl {
* @brief Get the color name.
* @return The name of the color.
*/
const std::string& getName(void) const {
const std::string& getName() const {
return m_colorName;
};
private:
@@ -51,14 +47,14 @@ namespace appl {
* @brief Get the foreground color.
* @return The color.
*/
const etk::Color<>& getForeground(void) const {
const etk::Color<>& getForeground() const {
return m_colorFG;
};
/**
* @brief Get the foreground color status.
* @return true if the color is visible.
*/
bool haveFg(void) const {
bool haveFg() const {
return m_colorFG.a() != 0;
};
private:
@@ -75,14 +71,14 @@ namespace appl {
* @brief Get the background color.
* @return The color.
*/
const etk::Color<>& getBackground(void) const {
const etk::Color<>& getBackground() const {
return m_colorBG;
};
/**
* @brief Get the background color status.
* @return true if the color is visible.
*/
bool haveBackground(void) const {
bool haveBackground() const {
return m_colorBG.a()!=0;
};
private:
@@ -97,7 +93,7 @@ namespace appl {
* @brief Get the italic status.
* @return true if the glyph might be display in italic.
*/
bool getItalic(void) const {
bool getItalic() const {
return m_italic;
};
private:
@@ -112,13 +108,11 @@ namespace appl {
* @brief Get the bold status.
* @return true if the glyph might be display in bold.
*/
bool getBold(void) const {
bool getBold() const {
return m_bold;
};
};
etk::CCout& operator <<(etk::CCout& _os, const appl::GlyphDecoration& _obj);
std::ostream& operator <<(std::ostream& _os, const appl::GlyphDecoration& _obj);
}
#endif

View File

@@ -1,37 +1,33 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <appl/debug.h>
#include <appl/global.h>
#include <appl/GlyphPainting.h>
#include <ejson/ejson.h>
#include <etk/os/FSNode.h>
#include <ewol/resources/ResourceManager.h>
#undef __class__
#define __class__ "GlyphPainting"
#include <gale/resource/Manager.h>
appl::GlyphPainting::GlyphPainting() {
addResourceType("appl::GlyphPainting");
}
appl::GlyphPainting::GlyphPainting(const std::string& _filename) :
ewol::Resource(_filename) {
addObjectType("appl::GlyphPainting");
EWOL_DEBUG("SFP : load \"" << _filename << "\"");
void appl::GlyphPainting::init(const std::string& _filename) {
gale::Resource::init(_filename);
APPL_DEBUG("SFP : load \"" << _filename << "\"");
reload();
}
appl::GlyphPainting::~GlyphPainting(void) {
appl::GlyphPainting::~GlyphPainting() {
}
void appl::GlyphPainting::reload(void) {
void appl::GlyphPainting::reload() {
ejson::Document doc;
if (false == doc.load(m_name)) {
if (doc.load(m_name) == false) {
APPL_ERROR("Can not load file : '" << m_name << "' = " << etk::FSNode(m_name).getFileSystemName());
return;
}
@@ -42,25 +38,25 @@ void appl::GlyphPainting::reload(void) {
doc.generate(tmppppp);
APPL_DEBUG(tmppppp);
*/
ejson::Array* baseArray = doc.getArray("ednColor");
if (baseArray == NULL) {
ejson::Array baseArray = doc["ednColor"].toArray();
if (baseArray.exist() == false) {
APPL_ERROR("Can not get basic array : 'ednColor'");
return;
}
for (int32_t iii = 0; iii < baseArray->size(); ++iii) {
ejson::Object* tmpObj = baseArray->getObject(iii);
if (tmpObj == NULL) {
APPL_DEBUG(" can not get object in 'ednColor' id=" << iii);
for (const auto it : baseArray) {
ejson::Object tmpObj = it.toObject();
if (tmpObj.exist() == false) {
APPL_DEBUG(" can not get object in 'ednColor' it=" << it);
continue;
}
std::string name = tmpObj->getStringValue("name", "");
std::string background = tmpObj->getStringValue("background", "#FFF0");
std::string foreground = tmpObj->getStringValue("foreground", "#000F");
bool italic = tmpObj->getBooleanValue("italic", false);
bool bold = tmpObj->getBooleanValue("bold", false);
std::string name = tmpObj["name"].toString().get();
std::string background = tmpObj["background"].toString().get("#FFF0");
std::string foreground = tmpObj["foreground"].toString().get("#000F");
bool italic = tmpObj["italic"].toBoolean().get(false);
bool bold = tmpObj["bold"].toBoolean().get(false);
APPL_VERBOSE("find new color : '" << name << "' fg='" << foreground << "' bg='" << background << "' italic='" << italic << "' bold='" << bold << "'");
bool findElement = false;
for (int32_t jjj=0; jjj<m_list.size(); ++jjj) {
for (size_t jjj=0; jjj<m_list.size(); ++jjj) {
if (m_list[jjj].getName() != name) {
continue;
}
@@ -84,7 +80,7 @@ void appl::GlyphPainting::reload(void) {
int32_t appl::GlyphPainting::request(const std::string& _name) {
for (int32_t iii=0; iii<m_list.size(); ++iii) {
for (size_t iii=0; iii<m_list.size(); ++iii) {
if (m_list[iii].getName() == _name) {
return iii;
}
@@ -94,30 +90,3 @@ int32_t appl::GlyphPainting::request(const std::string& _name) {
m_list.push_back(tmpDeco);
return m_list.size()-1;
}
appl::GlyphPainting* appl::GlyphPainting::keep(const std::string& _filename) {
//EWOL_INFO("KEEP : appl::GlyphPainting : file : \"" << _filename << "\"");
appl::GlyphPainting* object = static_cast<appl::GlyphPainting*>(getManager().localKeep(_filename));
if (NULL != object) {
return object;
}
// this element create a new one every time ....
EWOL_INFO("CREATE : appl::GlyphPainting : file : \"" << _filename << "\"");
object = new appl::GlyphPainting(_filename);
if (NULL == object) {
EWOL_ERROR("allocation error of a resource : ??GlyphPainting??");
return NULL;
}
getManager().localAdd(object);
return object;
}
void appl::GlyphPainting::release(appl::GlyphPainting*& _object) {
if (NULL == _object) {
return;
}
ewol::Resource* object2 = static_cast<ewol::Resource*>(_object);
getManager().release(object2);
_object = NULL;
}

View File

@@ -1,31 +1,30 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#ifndef __APPL_GLYPH_PAINTING_H__
#define __APPL_GLYPH_PAINTING_H__
#pragma once
#include <etk/types.h>
#include <ewol/debug.h>
#include <ewol/resources/Resource.h>
#include <gale/resource/Resource.h>
#include <appl/GlyphDecoration.h>
namespace appl {
class GlyphPainting : public ewol::Resource {
class GlyphPainting : public gale::Resource {
private:
std::vector<appl::GlyphDecoration> m_list;
protected:
GlyphPainting(const std::string& _filename);
virtual ~GlyphPainting(void);
GlyphPainting();
void init(const std::string& _filename);
public:
DECLARE_RESOURCE_NAMED_FACTORY(GlyphPainting);
virtual ~GlyphPainting();
public:
/**
* @brief Load or reload data from config
*/
void reload(void);
void reload();
/**
* @brief Register a decoration with his name and get the ref id.
* @param[in] _name Name of the deco.
@@ -48,21 +47,7 @@ namespace appl {
const appl::GlyphDecoration& operator[] (int32_t _pos) const {
return m_list[_pos];
}
public:
/**
* @brief keep the resource pointer.
* @note Never free this pointer by your own...
* @param[in] _filename Name of the configuration file.
* @return pointer on the resource or NULL if an error occured.
*/
static appl::GlyphPainting* keep(const std::string& _filename);
/**
* @brief release the keeped resources
* @param[in,out] reference on the object pointer
*/
static void release(appl::GlyphPainting*& _object);
};
};
}
#endif

View File

@@ -1,36 +1,25 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <appl/debug.h>
#include <appl/global.h>
#include <appl/Gui/BufferView.h>
#include <appl/BufferManager.h>
//#include <ColorizeManager.h>
#include <appl/Gui/MainWindows.h>
#include <ewol/renderer/EObject.h>
#include <ewol/object/Object.h>
#undef __class__
#define __class__ "BufferView"
static void SortElementList(std::vector<appl::dataBufferStruct*>& _list) {
std::vector<appl::dataBufferStruct *> tmpList = _list;
// TODO : write it better
static void SortElementList(std::vector<appl::dataBufferStruct>& _list) {
std::vector<appl::dataBufferStruct> tmpList = _list;
_list.clear();
for(int32_t iii=0; iii<tmpList.size(); iii++) {
if (NULL == tmpList[iii]) {
continue;
}
int32_t findPos = 0;
for(int32_t jjj=0; jjj<_list.size(); jjj++) {
for(size_t iii=0; iii<tmpList.size(); iii++) {
size_t findPos = 0;
for(size_t jjj=0; jjj<_list.size(); jjj++) {
//EWOL_DEBUG("compare : \""<<*tmpList[iii] << "\" and \"" << *m_listDirectory[jjj] << "\"");
if (_list[jjj] == NULL) {
continue;
}
if (tmpList[iii]->m_bufferName.getNameFile() > _list[jjj]->m_bufferName.getNameFile()) {
if (tmpList[iii].m_bufferName.getNameFile() > _list[jjj].m_bufferName.getNameFile()) {
findPos = jjj+1;
}
}
@@ -39,22 +28,15 @@ static void SortElementList(std::vector<appl::dataBufferStruct*>& _list) {
}
}
BufferView::BufferView(void) :
BufferView::BufferView() :
m_openOrderMode(false) {
addObjectType("appl::BufferView");
setCanHaveFocus(true);
registerMultiCast(ednMsgBufferListChange);
registerMultiCast(ednMsgBufferState);
registerMultiCast(ednMsgBufferId);
registerMultiCast(appl::MsgSelectNewFile);
registerMultiCast(appl::MsgSelectChange);
registerMultiCast(appl::MsgNameChange);
m_selectedID = -1;
m_selectedIdRequested = -1;
// load buffer manager:
m_bufferManager = appl::BufferManager::keep();
m_bufferManager = appl::BufferManager::create();
// load color properties
m_paintingProperties = appl::GlyphPainting::keep("THEME:COLOR:bufferList.json");
m_paintingProperties = appl::GlyphPainting::create("THEME:COLOR:bufferList.json");
// get all id properties ...
m_colorBackground1 = m_paintingProperties->request("backgroung1");
m_colorBackground2 = m_paintingProperties->request("backgroung2");
@@ -63,185 +45,129 @@ BufferView::BufferView(void) :
m_colorTextModify = m_paintingProperties->request("textModify");
}
BufferView::~BufferView(void) {
void BufferView::init() {
ewol::widget::List::init();
propertyHide.set(true);
propertyCanFocus.set(true);
if (m_bufferManager != nullptr) {
m_bufferManager->signalNewBuffer.connect(sharedFromThis(), &BufferView::onCallbackNewBuffer);
m_bufferManager->signalSelectFile.connect(sharedFromThis(), &BufferView::onCallbackselectNewFile);
m_bufferManager->signalRemoveBuffer.connect(sharedFromThis(), &BufferView::onCallbackBufferRemoved);
}
}
BufferView::~BufferView() {
removeAllElement();
}
void BufferView::removeAllElement(void) {
for(int32_t iii=0; iii<m_list.size(); iii++) {
if (NULL!=m_list[iii]) {
delete(m_list[iii]);
m_list[iii] = NULL;
}
}
void BufferView::removeAllElement() {
m_list.clear();
if (m_bufferManager != NULL) {
appl::BufferManager::release(m_bufferManager);
}
}
void BufferView::insertAlphabetic(appl::dataBufferStruct* _dataStruct, bool _selectNewPosition) {
if (_dataStruct == NULL) {
return;
}
void BufferView::insertAlphabetic(const appl::dataBufferStruct& _dataStruct, bool _selectNewPosition) {
// alphabetical order:
for (size_t iii = 0; iii < m_list.size(); ++iii) {
if (m_list[iii] == NULL) {
continue;
}
if (to_lower(m_list[iii]->m_bufferName.getNameFile()) > to_lower(_dataStruct->m_bufferName.getNameFile())) {
if (etk::tolower(m_list[iii].m_bufferName.getNameFile()) > etk::tolower(_dataStruct.m_bufferName.getNameFile())) {
m_list.insert(m_list.begin() + iii, _dataStruct);
_dataStruct = NULL;
if (_selectNewPosition == true) {
m_selectedID = iii;
}
break;
return;
}
}
if (_dataStruct != NULL) {
m_list.push_back(_dataStruct);
if (_selectNewPosition == true) {
m_selectedID = m_list.size()-1;
}
m_list.push_back(_dataStruct);
if (_selectNewPosition == true) {
m_selectedID = m_list.size()-1;
}
}
void BufferView::onCallbackNewBuffer(const std::string& _value) {
ememory::SharedPtr<appl::Buffer> buffer = m_bufferManager->get(_value);
if (buffer == nullptr) {
APPL_ERROR("event on element nor exist : " << _value);
return;
}
buffer->signalIsSave.connect(sharedFromThis(), &BufferView::onCallbackIsSave);
buffer->signalIsModify.connect(sharedFromThis(), &BufferView::onCallbackIsModify);
buffer->signalChangeName.connect(sharedFromThis(), &BufferView::onCallbackChangeName);
appl::dataBufferStruct tmp(_value, buffer);
if (m_openOrderMode == true) {
m_list.push_back(tmp);
} else {
insertAlphabetic(tmp);
}
if (m_list.size() <= 1) {
propertyHide.set(true);
propertySetOnWidgetNamed("appl-Buffer-viewer-separator", "hide", "true");
} else {
propertyHide.set(false);
propertySetOnWidgetNamed("appl-Buffer-viewer-separator", "hide", "false");
}
markToRedraw();
}
void BufferView::onReceiveMessage(const ewol::EMessage& _msg) {
widget::List::onReceiveMessage(_msg);
if (_msg.getMessage() == appl::MsgSelectNewFile) {
appl::Buffer* buffer = m_bufferManager->get(_msg.getData());
if (buffer == NULL) {
APPL_ERROR("event on element nor exist : " << _msg.getData());
return;
// TODO : Review this callback with the real shared_ptr on the buffer ...
void BufferView::onCallbackselectNewFile(const std::string& _value) {
m_selectedID = -1;
for (size_t iii=0; iii<m_list.size(); iii++) {
if (m_list[iii].m_buffer == nullptr) {
continue;
}
buffer->registerOnEvent(this, appl::Buffer::eventIsSave);
buffer->registerOnEvent(this, appl::Buffer::eventIsModify);
buffer->registerOnEvent(this, appl::Buffer::eventChangeName);
appl::dataBufferStruct* tmp = new appl::dataBufferStruct(_msg.getData(), buffer);
if (tmp == NULL) {
APPL_ERROR("Allocation error of the tmp buffer list element");
return;
if (m_list[iii].m_buffer->getFileName() != _value) {
continue;
}
if (m_openOrderMode == true) {
m_list.push_back(tmp);
} else {
insertAlphabetic(tmp);
}
markToRedraw();
return;
m_selectedID = iii;
break;
}
if (_msg.getMessage() == appl::Buffer::eventChangeName) {
for (size_t iii = 0; iii < m_list.size(); ++iii) {
if (m_list[iii] == NULL) {
continue;
}
if (m_list[iii]->m_bufferName != m_list[iii]->m_buffer->getFileName()) {
m_list[iii]->m_bufferName = m_list[iii]->m_buffer->getFileName();
if (m_openOrderMode == false) {
// re-order the fine in the correct position
appl::dataBufferStruct* tmp = m_list[iii];
m_list[iii] = NULL;
m_list.erase(m_list.begin() + iii);
insertAlphabetic(tmp, (iii == m_selectedID));
break;
}
}
}
markToRedraw();
return;
}
if (_msg.getMessage() == appl::Buffer::eventIsSave) {
markToRedraw();
return;
}
if (_msg.getMessage() == appl::Buffer::eventIsModify) {
markToRedraw();
return;
}
APPL_DEBUG("message : " << _msg);
if (_msg.getMessage() == appl::MsgSelectChange) {
m_selectedID = -1;
appl::Buffer* tmpBuffer = NULL;
if (m_bufferManager != NULL) {
tmpBuffer = m_bufferManager->getBufferSelected();
}
if (tmpBuffer != NULL) {
for (int32_t iii=0; iii<m_list.size(); iii++) {
if (m_list[iii] == NULL) {
continue;
}
if (m_list[iii]->m_buffer != tmpBuffer) {
continue;
}
m_selectedID = iii;
markToRedraw();
}
void BufferView::onCallbackChangeName() {
for (size_t iii = 0; iii < m_list.size(); ++iii) {
if (m_list[iii].m_bufferName != m_list[iii].m_buffer->getFileName()) {
m_list[iii].m_bufferName = m_list[iii].m_buffer->getFileName();
if (m_openOrderMode == false) {
// re-order the fine in the correct position
appl::dataBufferStruct tmp = m_list[iii];
m_list.erase(m_list.begin() + iii);
insertAlphabetic(tmp, ((int64_t)iii == m_selectedID));
break;
}
}
markToRedraw();
return;
}
if (_msg.getMessage() == ednMsgBufferListChange) {
// clean The list
removeAllElement();
// get all the buffer name and properties:
int32_t nbBufferOpen = 0; // BufferManager::size();
for (int32_t iii=0; iii<nbBufferOpen; iii++) {
/*
if (BufferManager::exist(iii)) {
BufferText* tmpBuffer = BufferManager::get(iii);
if (NULL != tmpBuffer) {
bool isModify = tmpBuffer->isModify();
etk::FSNode name = tmpBuffer->getFileName();
appl::dataBufferStruct* tmpElement = new appl::dataBufferStruct(name, iii, isModify);
if (NULL != tmpElement) {
m_list.push_back(tmpElement);
} else {
APPL_ERROR("Allocation error of the tmp buffer list element");
}
}
}
*/
}
if (true == globals::OrderTheBufferList() ) {
SortElementList(m_list);
}
markToRedraw();
}else if (_msg.getMessage() == ednMsgBufferId) {
m_selectedIdRequested = 0; //BufferManager::getSelected();
markToRedraw();
}else if (_msg.getMessage() == ednMsgBufferState) {
// update list of modify section ...
for (int32_t iii=0; iii<m_list.size(); iii++) {
if (NULL!=m_list[iii]) {
//m_list[iii]->m_isModify = BufferManager::get(m_list[iii]->m_bufferID)->isModify();
}
}
markToRedraw();
}
markToRedraw();
}
void BufferView::onObjectRemove(ewol::EObject* _removeObject) {
widget::List::onObjectRemove(_removeObject);
for (int32_t iii=0; iii<m_list.size(); iii++) {
if (m_list[iii] == NULL) {
continue;
void BufferView::onCallbackBufferRemoved(const ememory::SharedPtr<appl::Buffer>& _buffer) {
APPL_ERROR("request remove buffer:");
auto it = m_list.begin();
while (it != m_list.end()) {
if (it->m_buffer == _buffer) {
it = m_list.erase(it);
m_selectedID = -1;
} else {
++it;
}
if (m_list[iii]->m_buffer != _removeObject) {
continue;
}
m_list.erase(m_list.begin()+iii);
markToRedraw();
return;
}
if (m_list.size() <= 1) {
propertyHide.set(true);
} else {
propertyHide.set(false);
}
markToRedraw();
}
void BufferView::onCallbackIsSave() {
markToRedraw();
}
void BufferView::onCallbackIsModify() {
markToRedraw();
}
etk::Color<> BufferView::getBasicBG(void) {
etk::Color<> BufferView::getBasicBG() {
return (*m_paintingProperties)[m_colorBackground1].getForeground();
}
uint32_t BufferView::getNuberOfColomn(void) {
uint32_t BufferView::getNuberOfColomn() {
return 1;
}
@@ -250,18 +176,17 @@ bool BufferView::getTitle(int32_t _colomn, std::string &_myTitle, etk::Color<> &
return true;
}
uint32_t BufferView::getNuberOfRaw(void) {
uint32_t BufferView::getNuberOfRaw() {
return m_list.size();
}
bool BufferView::getElement(int32_t _colomn, int32_t _raw, std::string& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg) {
if( _raw >= 0
&& _raw<m_list.size()
&& NULL != m_list[_raw]) {
_myTextToWrite = m_list[_raw]->m_bufferName.getNameFile();
&& _raw<(int64_t)m_list.size() ) {
_myTextToWrite = m_list[_raw].m_bufferName.getNameFile();
if ( m_list[_raw]->m_buffer != NULL
&& m_list[_raw]->m_buffer->isModify() == false) {
if ( m_list[_raw].m_buffer != nullptr
&& m_list[_raw].m_buffer->isModify() == false) {
_fg = (*m_paintingProperties)[m_colorTextNormal].getForeground();
} else {
_fg = (*m_paintingProperties)[m_colorTextModify].getForeground();
@@ -281,17 +206,16 @@ bool BufferView::getElement(int32_t _colomn, int32_t _raw, std::string& _myTextT
return true;
}
bool BufferView::onItemEvent(int32_t _IdInput, enum ewol::keyEvent::status _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y)
{
if (1 == _IdInput && _typeEvent == ewol::keyEvent::statusSingle) {
bool BufferView::onItemEvent(int32_t _IdInput, enum gale::key::status _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y) {
if (1 == _IdInput && _typeEvent == gale::key::status::pressSingle) {
APPL_INFO("Event on List : IdInput=" << _IdInput << " colomn=" << _colomn << " raw=" << _raw );
if( _raw >= 0
&& _raw<m_list.size()
&& NULL != m_list[_raw]) {
if (m_list[_raw]->m_buffer != NULL) {
sendMultiCast(appl::MsgSelectNewFile, m_list[_raw]->m_buffer->getFileName());
m_selectedID = _raw;
markToRedraw();
&& _raw<(int64_t)m_list.size()) {
if (m_list[_raw].m_buffer != nullptr) {
if (m_bufferManager != nullptr) {
APPL_INFO("Select file :" << m_list[_raw].m_buffer->getFileName() << " in list");
m_bufferManager->open(m_list[_raw].m_buffer->getFileName());
}
return true;
}
}

View File

@@ -1,13 +1,9 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#ifndef __BUFFER_VIEW_H__
#define __BUFFER_VIEW_H__
#pragma once
#include <appl/debug.h>
#include <appl/BufferManager.h>
@@ -15,28 +11,28 @@
#include <ewol/widget/List.h>
#include <ewol/widget/Windows.h>
namespace appl
{
class dataBufferStruct
{
namespace appl {
class dataBufferStruct {
public:
etk::FSNode m_bufferName;
appl::Buffer* m_buffer;
dataBufferStruct(const std::string& _bufferName, appl::Buffer* _buffer) :
ememory::SharedPtr<appl::Buffer> m_buffer;
dataBufferStruct(const std::string& _bufferName, const ememory::SharedPtr<appl::Buffer>& _buffer) :
m_bufferName(_bufferName),
m_buffer(_buffer) {
};
~dataBufferStruct(void) { };
virtual ~dataBufferStruct() { };
};
};
class BufferView : public widget::List
{
class BufferView;
using BufferViewShared = ememory::SharedPtr<BufferView>;
using BufferViewWeak = ememory::WeakPtr<BufferView>;
class BufferView : public ewol::widget::List {
private:
appl::BufferManager* m_bufferManager; //!< handle on the buffer manager
ememory::SharedPtr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
private:
appl::GlyphPainting* m_paintingProperties; //!< element painting property
ememory::SharedPtr<appl::GlyphPainting> m_paintingProperties; //!< element painting property
int32_t m_colorBackground1;
int32_t m_colorBackground2;
int32_t m_colorBackgroundSelect;
@@ -45,34 +41,37 @@ class BufferView : public widget::List
private:
int32_t m_selectedIdRequested;
int32_t m_selectedID;
std::vector<appl::dataBufferStruct*> m_list;
std::vector<appl::dataBufferStruct> m_list;
/**
* @brief Insert the element in the alphabetic order.
* @param[in] _dataStruct element to add.
*/
void insertAlphabetic(appl::dataBufferStruct* _dataStruct, bool _selectNewPosition = false);
public:
void insertAlphabetic(const appl::dataBufferStruct& _dataStruct, bool _selectNewPosition = false);
protected:
// Constructeur
BufferView(void);
~BufferView(void);
// Derived function
virtual void onReceiveMessage(const ewol::EMessage& _msg);
virtual void onObjectRemove(ewol::EObject* _removeObject);
BufferView();
void init();
public:
DECLARE_FACTORY(BufferView);
virtual ~BufferView();
private:
bool m_openOrderMode; //!< true if the order is the opening order mode, otherwise, Alphabetic order
protected:
// function call to display the list :
virtual etk::Color<> getBasicBG(void);
void removeAllElement(void);
virtual etk::Color<> getBasicBG();
void removeAllElement();
// Derived function
virtual uint32_t getNuberOfColomn(void);
virtual uint32_t getNuberOfColomn();
virtual bool getTitle(int32_t _colomn, std::string& _myTitle, etk::Color<>& _fg, etk::Color<>& _bg);
virtual uint32_t getNuberOfRaw(void);
virtual uint32_t getNuberOfRaw();
virtual bool getElement(int32_t _colomn, int32_t _raw, std::string& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg);
virtual bool onItemEvent(int32_t _IdInput, enum ewol::keyEvent::status _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y);
virtual bool onItemEvent(int32_t _IdInput, enum gale::key::status _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y);
private: //callback function:
void onCallbackChangeName();
void onCallbackIsSave();
void onCallbackIsModify();
void onCallbackNewBuffer(const std::string& _value);
void onCallbackselectNewFile(const std::string& _value);
void onCallbackBufferRemoved(const ememory::SharedPtr<appl::Buffer>& _buffer);
};
#endif

View File

@@ -1,12 +1,8 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <appl/debug.h>
#include <appl/global.h>
#include <appl/Gui/MainWindows.h>
@@ -27,10 +23,9 @@
#include <ewol/widget/Menu.h>
#include <ewol/widget/meta/FileChooser.h>
#include <ewol/widget/meta/Parameter.h>
#include <ewol/widget/WidgetManager.h>
#include <ewol/renderer/EObject.h>
#include <ewol/renderer/eContext.h>
#include <date/date.h>
#include <ewol/widget/Manager.h>
#include <ewol/object/Object.h>
#include <ewol/context/Context.h>
#include <ewol/widget/meta/StdPopUp.h>
#include <appl/Gui/WorkerSaveFile.h>
#include <appl/Gui/WorkerSaveAllFile.h>
@@ -38,53 +33,36 @@
#include <appl/Gui/WorkerCloseAllFile.h>
namespace appl {
std::string getVersion(void) {
#define FIRST_YEAR (2010)
std::string tmpOutput = std::to_string(date::getYear()-FIRST_YEAR);
tmpOutput += ".";
tmpOutput += std::to_string(date::getMonth());
tmpOutput += ".";
tmpOutput += std::to_string(date::getDay());
return tmpOutput;
std::string getVersion() {
return APPL_VERSION;
}
}
#undef __class__
#define __class__ "AboutGui"
#include <ewol/widget/Label.h>
#include <ewol/widget/Spacer.h>
class ParameterAboutGui : public widget::Sizer {
class ParameterAboutGui : public ewol::widget::Sizer {
public :
ParameterAboutGui(void) :
widget::Sizer(widget::Sizer::modeVert) {
widget::Spacer* mySpacer = NULL;
ParameterAboutGui() {
addObjectType("appl::ParameterAboutGui");
}
void init() {
propertyMode.setDirectCheck(ewol::widget::Sizer::modeVert);
ewol::widget::Sizer::init();
ememory::SharedPtr<ewol::widget::Spacer> mySpacer;
mySpacer = new widget::Spacer();
if (NULL == mySpacer) {
mySpacer = ewol::widget::Spacer::create();
if (mySpacer == nullptr) {
APPL_ERROR("Can not allocate widget == > display might be in error");
} else {
mySpacer->setExpand(bvec2(true,true));
mySpacer->propertyExpand.set(bvec2(true,true));
subWidgetAdd(mySpacer);
}
std::string tmpLabel = "<left>";
tmpLabel += " <b>Editeur De N'ours</b> : v:";
tmpLabel += appl::getVersion();
tmpLabel += "<br/>";
tmpLabel += " <b>Build Time</b> : ";
tmpLabel += date::getYear();
tmpLabel += "/";
tmpLabel += date::getMonth();
tmpLabel += "/";
tmpLabel += date::getDay();
tmpLabel += " ";
tmpLabel += date::getHour();
tmpLabel += "h";
tmpLabel += date::getMinute();
tmpLabel += "<br/>";
tmpLabel += " <b>Website</b> : https://github.com/HeeroYui/edn<br/>";
tmpLabel += " <b>License</b> : GPL v3<br/>";
tmpLabel += " <b>Copyright</b> : 2010 Edouard DUPIN<br/>";
@@ -93,320 +71,287 @@ class ParameterAboutGui : public widget::Sizer {
tmpLabel += " libPng, ogg-tremor, portaudio, libZip<br/>";
tmpLabel += " tinyXml, freetype, agg2.4, etk<br/>";
tmpLabel += "</left>";
widget::Label* myLabel = new widget::Label(tmpLabel);
if (NULL == myLabel) {
ememory::SharedPtr<ewol::widget::Label> myLabel = ewol::widget::Label::create();
if (myLabel == nullptr) {
APPL_ERROR("Can not allocate widget == > display might be in error");
} else {
myLabel->setExpand(bvec2(true,false));
myLabel->propertyValue.set(tmpLabel);
myLabel->propertyExpand.set(bvec2(true,false));
subWidgetAdd(myLabel);
}
};
~ParameterAboutGui(void) {
~ParameterAboutGui() {
};
};
// Local main windows event :
static const char* mainWindowsRequestSaveFile = "appl-event-main-windows-save-file";
static const char* mainWindowsRequestSaveFileAs = "appl-event-main-windows-save-file-as";
static const char* mainWindowsRequestcloseFileNoCheck = "appl-event-main-windows-close-file-no-check";
const char* l_smoothChick = "tmpEvent_smooth";
const char* l_smoothMin = "tmpEvent_minChange";
const char* l_smoothMax = "tmpEvent_maxChange";
#undef __class__
#define __class__ "MainWindows"
MainWindows::MainWindows(void) {
MainWindows::MainWindows() {
addObjectType("appl::MainWindows");
}
void MainWindows::init() {
ewol::widget::Windows::init();
APPL_DEBUG("CREATE WINDOWS ... ");
widget::Sizer * mySizerVert = NULL;
widget::Sizer * mySizerVert2 = NULL;
widget::Sizer * mySizerHori = NULL;
//ewol::Button * myButton = NULL;
appl::TextViewer * myTextView = NULL;
BufferView * myBufferView = NULL;
widget::Menu * myMenu = NULL;
ewol::widget::SizerShared mySizerVert;
ewol::widget::SizerShared mySizerVert2;
ewol::widget::SizerShared mySizerHori;
ememory::SharedPtr<appl::TextViewer> myTextView;
ememory::SharedPtr<appl::TextViewer> myTextView2;
ememory::SharedPtr<BufferView> myBufferView;
ewol::widget::MenuShared myMenu;
// load buffer manager:
m_bufferManager = appl::BufferManager::keep();
m_bufferManager = appl::BufferManager::create();
m_viewerManager = appl::ViewerManager::create();
mySizerVert = new widget::Sizer(widget::Sizer::modeVert);
mySizerVert = ewol::widget::Sizer::create();
mySizerVert->propertyName.set("plop 1111111");
mySizerVert->propertyMode.set(ewol::widget::Sizer::modeVert);
setSubWidget(mySizerVert);
mySizerHori = new widget::Sizer(widget::Sizer::modeHori);
mySizerHori = ewol::widget::Sizer::create();
mySizerHori->propertyName.set("plop 222222222");
mySizerHori->propertyMode.set(ewol::widget::Sizer::modeHori);
mySizerVert->subWidgetAdd(mySizerHori);
myBufferView = new BufferView();
myBufferView->setExpand(bvec2(false,true));
myBufferView->setFill(bvec2(true,true));
myBufferView = BufferView::create();
myBufferView->propertyName.set("plop 3333333");
myBufferView->propertyExpand.set(bvec2(false,true));
myBufferView->propertyFill.set(bvec2(true,true));
mySizerHori->subWidgetAdd(myBufferView);
mySizerVert2 = new widget::Sizer(widget::Sizer::modeVert);
mySizerHori->subWidgetAdd(mySizerVert2);
// main buffer Area :
myTextView = new appl::TextViewer("FreeMono;DejaVuSansMono;FreeSerif", 11);
myTextView->setExpand(bvec2(true,true));
myTextView->setFill(bvec2(true,true));
mySizerVert2->subWidgetAdd(myTextView);
/*
myTextView = new appl::TextViewer("FreeMono;DejaVuSansMono;FreeSerif", 11);
myTextView->setExpand(bvec2(true,true));
myTextView->setFill(bvec2(true,true));
mySizerVert2->subWidgetAdd(myTextView);
*/
// search area :
Search * mySearch = new Search();
mySizerVert2->subWidgetAdd(mySearch);
#ifdef APPL_BUFFER_FONT_DISTANCE_FIELD
{
widget::Sizer * mySizerHori2 = new widget::Sizer(widget::Sizer::modeHori);
mySizerVert2->subWidgetAdd(mySizerHori2);
widget::CheckBox* tmpCheck = new widget::CheckBox("smooth");
mySizerHori2->subWidgetAdd(tmpCheck);
tmpCheck->registerOnEvent(this, ewolEventCheckBoxClicked, l_smoothChick);
widget::Slider* tmpSlider = new widget::Slider();
mySizerHori2->subWidgetAdd(tmpSlider);
tmpSlider->registerOnEvent(this, ewolEventSliderChange, l_smoothMin);
tmpSlider->setExpand(bvec2(true,false));
tmpSlider->setMin(0);
tmpSlider->setMax(1000);
tmpSlider->setValue(0450);
tmpSliderMin = tmpSlider;
tmpSlider = new widget::Slider();
mySizerHori2->subWidgetAdd(tmpSlider);
tmpSlider->registerOnEvent(this, ewolEventSliderChange, l_smoothMax);
tmpSlider->setExpand(bvec2(true,false));
tmpSlider->setMin(0);
tmpSlider->setMax(1000);
tmpSlider->setValue(0550);
tmpSliderMax = tmpSlider;
}
#endif
ewol::widget::SpacerShared mySpacer = ewol::widget::Spacer::create();
mySpacer->propertyName.set("appl-Buffer-viewer-separator");
mySpacer->propertyColor.set(etk::color::black);
mySpacer->propertyMinSize.set(gale::Dimension(vec2(2,2), gale::distance::pixel));
mySpacer->propertyExpand.set(bvec2(false,true));
mySpacer->propertyFill.set(bvec2(true,true));
mySpacer->propertyHide.set(true);
mySizerHori->subWidgetAdd(mySpacer);
mySizerHori = new widget::Sizer(widget::Sizer::modeHori);
mySizerVert2 = ewol::widget::Sizer::create();
mySizerVert2->propertyMode.set(ewol::widget::Sizer::modeVert);
mySizerHori->subWidgetAdd(mySizerVert2);
mySizerVert2->propertyName.set("appl-view-code-sizer");
// main buffer Area :
#if defined(__TARGET_OS__Android)
int32_t sizeText = 16;
#else
int32_t sizeText = 11;
#endif
myTextView2 = appl::TextViewer::create("font-size", sizeText);
myTextView2->propertyName.set("appl-text-viewer2");
myTextView2->propertyExpand.set(bvec2(true,true));
myTextView2->propertyFill.set(bvec2(true,true));
myTextView2->propertyHide.set(true);
mySizerVert2->subWidgetAdd(myTextView2);
mySpacer = ewol::widget::Spacer::create();
mySpacer->propertyName.set("appl-text-separator");
mySpacer->propertyColor.set(etk::color::black);
mySpacer->propertyMinSize.set(gale::Dimension(vec2(2,2), gale::distance::pixel));
mySpacer->propertyExpand.set(bvec2(true,false));
mySpacer->propertyFill.set(bvec2(true,true));
mySpacer->propertyHide.set(true);
mySizerVert2->subWidgetAdd(mySpacer);
myTextView = appl::TextViewer::create("font-size", sizeText);
myTextView->propertyName.set("appl-text-viewer1");
myTextView->propertyExpand.set(bvec2(true,true));
myTextView->propertyFill.set(bvec2(true,true));
mySizerVert2->subWidgetAdd(myTextView);
// search area:
m_widgetSearch = appl::widget::Search::create();
mySizerVert2->subWidgetAdd(m_widgetSearch);
mySizerHori = ewol::widget::Sizer::create();
mySizerHori->propertyName.set("plop 555555");
mySizerHori->propertyMode.set(ewol::widget::Sizer::modeHori);
mySizerVert->subWidgetAdd(mySizerHori);
myMenu = new widget::Menu();
myMenu = ewol::widget::Menu::create();
myMenu->propertyName.set("appl-menu-interface");
mySizerHori->subWidgetAdd(myMenu);
int32_t idMenuFile = myMenu->addTitle("File");
(void)myMenu->add(idMenuFile, "New", "", ednMsgGuiNew);
(void)myMenu->addSpacer();
(void)myMenu->add(idMenuFile, "Open", "THEME:GUI:Load.svg", ednMsgGuiOpen);
(void)myMenu->add(idMenuFile, "Close", "THEME:GUI:Close.svg", ednMsgGuiClose, "current");
(void)myMenu->add(idMenuFile, "Close (all)", "", ednMsgGuiClose, "All");
(void)myMenu->add(idMenuFile, "Save", "THEME:GUI:Save.svg", ednMsgGuiSave, "current");
(void)myMenu->add(idMenuFile, "Save As ...", "", ednMsgGuiSaveAs);
(void)myMenu->addSpacer();
//(void)myMenu->add(idMenuFile, "Exit", "", ednMsgGuiExit);
(void)myMenu->addSpacer();
(void)myMenu->add(idMenuFile, "Properties", "THEME:GUI:Parameter.svg", ednMsgProperties);
int32_t idMenuEdit = myMenu->addTitle("Edit");
(void)myMenu->add(idMenuEdit, "Undo", "THEME:GUI:Undo.svg", ednMsgGuiUndo);
(void)myMenu->add(idMenuEdit, "Redo", "THEME:GUI:Redo.svg", ednMsgGuiRedo);
(void)myMenu->addSpacer();
(void)myMenu->add(idMenuEdit, "Copy", "", ednMsgGuiCopy, "STD");
(void)myMenu->add(idMenuEdit, "Cut", "", ednMsgGuiCut, "STD");
(void)myMenu->add(idMenuEdit, "Paste", "", ednMsgGuiPaste, "STD");
(void)myMenu->add(idMenuEdit, "Remove", "", ednMsgGuiRm);
(void)myMenu->addSpacer();
(void)myMenu->add(idMenuEdit, "Select All","", ednMsgGuiSelect, "ALL");
(void)myMenu->add(idMenuEdit, "Un-Select","", ednMsgGuiSelect, "NONE");
(void)myMenu->add(idMenuEdit, "Goto line ...","", ednMsgGuiGotoLine, "???");
int32_t idMenuSearch = myMenu->addTitle("Search");
(void)myMenu->add(idMenuSearch, "Search", "THEME:GUI:Search.svg", ednMsgGuiSearch);
(void)myMenu->add(idMenuSearch, "Replace", "THEME:GUI:Replace.svg", ednMsgGuiReplace);
(void)myMenu->addSpacer();
(void)myMenu->add(idMenuSearch, "Find (previous)","", ednMsgGuiFind, "Previous");
(void)myMenu->add(idMenuSearch, "Find (next)", "", ednMsgGuiFind, "Next");
(void)myMenu->add(idMenuSearch, "Find (all)", "", ednMsgGuiFind, "All");
(void)myMenu->add(idMenuSearch, "Un-Select", "", ednMsgGuiFind, "None");
/* ==> must be in the pluggin list control ...
int32_t idMenuCTags = myMenu->addTitle("C-tags");
(void)myMenu->add(idMenuCTags, "Load", "", ednMsgGuiCtags, "Load");
(void)myMenu->add(idMenuCTags, "ReLoad", "", ednMsgGuiCtags, "ReLoad");
(void)myMenu->add(idMenuCTags, "Jump", "", ednMsgGuiCtags, "Jump");
(void)myMenu->add(idMenuCTags, "Back", "", ednMsgGuiCtags, "Back");
*/
int32_t idMenugDisplay = myMenu->addTitle("Display");
(void)myMenu->add(idMenugDisplay, "Color Black", "", appl::MsgNameGuiChangeColor, "colorBlack/");
(void)myMenu->add(idMenugDisplay, "Color White", "", appl::MsgNameGuiChangeColor, "colorWhite/");
(void)myMenu->addSpacer();
(void)myMenu->add(idMenugDisplay, "Reload openGl Shader", "", ednMsgGuiReloadShader);
m_widgetLabelFileName = new widget::Label("FileName");
m_widgetLabelFileName->setExpand(bvec2(true,false));
m_widgetLabelFileName->setFill(bvec2(true,false));;
int32_t idMenuFile = myMenu->addTitle("_T{File}");
myMenu->add(idMenuFile, "_T{New}", "", "menu:new");
myMenu->addSpacer();
myMenu->add(idMenuFile, "_T{Open}", "THEME:GUI:Load.edf", "menu:open");
myMenu->add(idMenuFile, "_T{Close}", "THEME:GUI:Close.edf", "menu:close");
myMenu->add(idMenuFile, "_T{Close (all)}", "", "menu:close-all");
myMenu->add(idMenuFile, "_T{Save}", "THEME:GUI:Save.edf", "menu:save");
myMenu->add(idMenuFile, "_T{Save As ...}", "", "menu:save-as");
myMenu->addSpacer();
myMenu->add(idMenuFile, "_T{Properties}", "THEME:GUI:Parameter.edf", "menu:property");
int32_t idMenuEdit = myMenu->addTitle("_T{Edit}");
myMenu->add(idMenuEdit, "_T{Goto line ...}","", "menu:goto-line");
int32_t idMenuSearch = myMenu->addTitle("_T{Search}");
myMenu->add(idMenuSearch, "_T{Search}", "THEME:GUI:Search.edf", "menu:search");
myMenu->add(idMenuSearch, "_T{Replace}", "THEME:GUI:Replace.edf", "menu:replace");
myMenu->addSpacer();
myMenu->add(idMenuSearch, "_T{Find (previous)}","", "menu:find:previous");
myMenu->add(idMenuSearch, "_T{Find (next)}", "", "menu:find:next");
myMenu->add(idMenuSearch, "_T{Find (all)}", "", "menu:find:all");
myMenu->add(idMenuSearch, "_T{Un-Select}", "", "menu:find:none");
int32_t idMenugDisplay = myMenu->addTitle("_T{Display}");
myMenu->add(idMenugDisplay, "_T{Color Black}", "", "menu:color:color/black/");
myMenu->add(idMenugDisplay, "_T{Color White}", "", "menu:color:color/white/");
myMenu->add(idMenugDisplay, "_T{Shape square}", "", "menu:shape:shape/square/");
myMenu->add(idMenugDisplay, "_T{Shape round}", "", "menu:shape:shape/round/");
myMenu->addSpacer();
myMenu->add(idMenugDisplay, "_T{Reload openGl Shader}", "", "menu:reloadShape");
myMenu->addSpacer();
myMenu->add(idMenugDisplay, "_T{Split}", "", "menu:split:enable");
myMenu->add(idMenugDisplay, "_T{Unsplit}", "", "menu:split:disable");
myMenu->add(idMenugDisplay, "_T{Vertical}", "", "menu:split:vert");
myMenu->add(idMenugDisplay, "_T{Horizontal}", "", "menu:split:hori");
myMenu->signalSelect.connect(sharedFromThis(), &MainWindows::onCallbackMenuEvent);
m_widgetLabelFileName = ewol::widget::Label::create();
m_widgetLabelFileName->propertyValue.set("FileName");
m_widgetLabelFileName->propertyName.set("appl-widget-display-name");
m_widgetLabelFileName->propertyExpand.set(bvec2(true,false));
m_widgetLabelFileName->propertyFill.set(bvec2(true,false));;
mySizerHori->subWidgetAdd(m_widgetLabelFileName);
// add generic shortcut ...
// (shift, control, alt, meta, char32_t unicodeValue, const char * generateEventId, std::string& data)
shortCutAdd("ctrl+o", ednMsgGuiOpen, "", true);
shortCutAdd("ctrl+n", ednMsgGuiNew, "", true);
shortCutAdd("ctrl+o", "menu:open");
shortCutAdd("ctrl+n", "menu:new");
shortCutAdd("ctrl+s", ednMsgGuiSave, "current", true);
shortCutAdd("ctrl+shift+s", ednMsgGuiSave, "All", true);
shortCutAdd("ctrl+s", "menu:save");
shortCutAdd("ctrl+shift+s", "menu:save-all");
shortCutAdd("ctrl+q", ednMsgGuiClose, "current", true);
shortCutAdd("ctrl+shift+q", ednMsgGuiClose, "All", true);
shortCutAdd("ctrl+q", "menu:close");
shortCutAdd("ctrl+shift+q", "menu:close-all");
shortCutAdd("ctrl+z", ednMsgGuiUndo, "", true);
shortCutAdd("ctrl+shift+z", ednMsgGuiRedo, "", true);
shortCutAdd("ctrl+l", "menu:goto-line");
shortCutAdd("ctrl+l", ednMsgGuiGotoLine, "???", true);
shortCutAdd("ctrl+f", ednMsgGuiSearch, "", true);
shortCutAdd("F12", ednMsgGuiReloadShader, "", true);
//shortCutAdd("ctrl+d", ednMsgGuiCtags, "Jump", true);
// Generic event ...
registerMultiCast(ednMsgGuiSave);
registerMultiCast(ednMsgGuiSaveAs);
registerMultiCast(ednMsgProperties);
registerMultiCast(ednMsgGuiNew);
registerMultiCast(ednMsgGuiOpen);
registerMultiCast(ednMsgGuiClose);
// to update the title ...
registerMultiCast(ednMsgBufferState);
registerMultiCast(ednMsgBufferId);
registerMultiCast(ednMsgGuiReloadShader);
registerMultiCast(appl::MsgNameGuiChangeColor);
registerMultiCast(appl::MsgSelectNewFile);
shortCutAdd("ctrl+f", "menu:search");
shortCutAdd("F12", "menu:reloade-shader");
// TODO : auto-connect on shortcut event ==> maybe do beter later ...
signalShortcut.connect(sharedFromThis(), &MainWindows::onCallbackShortCut);
m_bufferManager->signalSelectFile.connect(sharedFromThis(), &MainWindows::onCallbackselectNewFile);
}
MainWindows::~MainWindows(void) {
appl::BufferManager::release(m_bufferManager);
MainWindows::~MainWindows() {
}
void MainWindows::onCallbackShortCut(const std::string& _value) {
APPL_WARNING("Event from ShortCut : " << _value);
onCallbackMenuEvent(_value);
}
const char *const ednEventPopUpFileSelected = "edn-mainWindows-openSelected";
const char *const ednEventPopUpFileSaveAs = "edn-mainWindows-saveAsSelected";
void MainWindows::onReceiveMessage(const ewol::EMessage& _msg) {
ewol::Windows::onReceiveMessage(_msg);
APPL_VERBOSE("Receive Event from the main windows: " << _msg );
// open file Section ...
if (_msg.getMessage() == ednMsgGuiOpen) {
widget::FileChooser* tmpWidget = new widget::FileChooser();
if (tmpWidget == NULL) {
APPL_ERROR("Can not open File chooser !!! ");
void MainWindows::onCallbackMenuEvent(const std::string& _value) {
APPL_WARNING("Event from Menu : " << _value);
if (_value == "menu:new") {
if (m_bufferManager != nullptr) {
m_bufferManager->createNewBuffer();
}
} else if (_value == "menu:open") {
displayOpen();
} else if (_value == "menu:close") {
ememory::SharedPtr<appl::WorkerCloseFile> worker = appl::WorkerCloseFile::create();
worker->startAction("");
} else if (_value == "menu:close-all") {
appl::WorkerCloseAllFile::create();
} else if (_value == "menu:save") {
appl::WorkerSaveFile::create("", false);
} else if (_value == "menu:save-all") {
appl::WorkerSaveAllFile::create();
} else if (_value == "menu:save-as") {
appl::WorkerSaveFile::create("", true);
} else if (_value == "menu:property") {
displayProperty();
} else if (_value == "menu:search") {
if (m_widgetSearch == nullptr) {
return;
}
tmpWidget->setTitle("Open files ...");
tmpWidget->setValidateLabel("Open");
if (m_bufferManager == NULL) {
APPL_ERROR("can not call unexistant buffer manager ... ");
return;
}
// Get a ref on the buffer selected (if null, no buffer was selected ...)
appl::Buffer* tmpBuffer = m_bufferManager->getBufferSelected();
if (tmpBuffer != NULL) {
etk::FSNode tmpFile = tmpBuffer->getFileName();
tmpWidget->setFolder(tmpFile.getNameFolder());
}
// apply widget pop-up ...
popUpWidgetPush(tmpWidget);
tmpWidget->registerOnEvent(this, widget::FileChooser::eventValidate, ednEventPopUpFileSelected);
} else if (_msg.getMessage() == ednMsgProperties) {
// Request the parameter GUI
widget::Parameter* tmpWidget = new widget::Parameter();
if (NULL == tmpWidget) {
APPL_ERROR("Can not allocate widget == > display might be in error");
if (m_widgetSearch->propertyHide.get() == true) {
m_widgetSearch->propertyHide.set(false);
m_widgetSearch->selectSearch();
} else {
tmpWidget->setTitle("Properties");
popUpWidgetPush(tmpWidget);
tmpWidget->menuAddGroup("Editor");
ewol::Widget* tmpSubWidget = new globals::ParameterGlobalsGui();
tmpWidget->menuAdd("Editor", "", tmpSubWidget);
tmpWidget->menuAdd("Font & Color", "", NULL);
tmpWidget->menuAdd("Highlight", "", NULL);
tmpWidget->menuAddGroup("General");
tmpWidget->menuAdd("Display", "", NULL);
tmpSubWidget = new ParameterAboutGui();
tmpWidget->menuAdd("About", "", tmpSubWidget);
if (m_widgetSearch->isSelectSearch()) {
m_widgetSearch->propertyHide.set(true);
if (m_viewerManager != nullptr) {
ememory::SharedPtr<appl::TextViewer> tmp = m_viewerManager->getViewerSelected();
if (tmp != nullptr) {
tmp->keepFocus();
}
}
} else {
m_widgetSearch->selectSearch();
}
}
} else if (_msg.getMessage() == appl::MsgNameGuiChangeColor) {
etk::theme::setName("COLOR", _msg.getData());
} else if (_value == "menu:replace") {
if (m_widgetSearch == nullptr) {
return;
}
if (m_widgetSearch->propertyHide.get() == true) {
m_widgetSearch->propertyHide.set(false);
m_widgetSearch->selectReplace();
} else {
if (m_widgetSearch->isSelectReplace()) {
m_widgetSearch->propertyHide.set(true);
if (m_viewerManager != nullptr) {
ememory::SharedPtr<appl::TextViewer> tmp = m_viewerManager->getViewerSelected();
if (tmp != nullptr) {
tmp->keepFocus();
}
}
} else {
m_widgetSearch->selectReplace();
}
}
} else if (_value == "menu:find:previous") {
APPL_TODO("Event from Menu : " << _value);
} else if (_value == "menu:find:next") {
APPL_TODO("Event from Menu : " << _value);
} else if (_value == "menu:find:all") {
APPL_TODO("Event from Menu : " << _value);
} else if (_value == "menu:find:none") {
APPL_TODO("Event from Menu : " << _value);
} else if ( _value == "menu:color:color/black/"
|| _value == "menu:color:color/white/") {
etk::theme::setName("COLOR", std::string(_value, 11));
EWOL_ERROR("Select Shape or Color : 'COLOR'='" << std::string(_value, 11) << "'");
ewol::getContext().getResourcesManager().reLoadResources();
ewol::getContext().forceRedrawAll();
} else if (_msg.getMessage() == ednMsgGuiReloadShader) {
} else if ( _value == "menu:shape:shape/square/"
|| _value == "menu:shape:shape/round/") {
EWOL_ERROR("Select Shape or Color : 'GUI'='" << std::string(_value, 11) << "'");
etk::theme::setName("GUI", std::string(_value, 11));
ewol::getContext().getResourcesManager().reLoadResources();
ewol::getContext().forceRedrawAll();
} else if (_msg.getMessage() == ednMsgGuiExit) {
// TODO : ...
} else if (_value == "menu:reloadShape") {
ewol::getContext().getResourcesManager().reLoadResources();
ewol::getContext().forceRedrawAll();
} else if (_value == "menu:split:enable") {
propertySetOnWidgetNamed("appl-text-viewer2", "hide", "false");
propertySetOnWidgetNamed("appl-text-separator", "hide", "false");
} else if (_value == "menu:split:disable") {
propertySetOnWidgetNamed("appl-text-viewer2", "hide", "true");
propertySetOnWidgetNamed("appl-text-separator", "hide", "true");
} else if (_value == "menu:split:vert") {
propertySetOnWidgetNamed("appl-view-code-sizer", "mode", "vert");
propertySetOnWidgetNamed("appl-text-separator", "expand", "true,false");
} else if (_value == "menu:split:hori") {
propertySetOnWidgetNamed("appl-view-code-sizer", "mode", "hori");
propertySetOnWidgetNamed("appl-text-separator", "expand", "false,true");
} else if (_value == "menu:reloade-shader") {
ewol::getContext().getResourcesManager().reLoadResources();
ewol::getContext().forceRedrawAll();
} else {
APPL_ERROR("Event from Menu UNKNOW : '" << _value << "'");
}
// Note : Fore all next message we need to acces to the buffer manager ==> just check one time ...
if (m_bufferManager == NULL) {
APPL_ERROR("can not call unexistant buffer manager ... ");
return;
}
if ( _msg.getMessage() == appl::MsgSelectNewFile
|| _msg.getMessage() == appl::Buffer::eventIsModify
|| _msg.getMessage() == appl::Buffer::eventIsSave
|| _msg.getMessage() == appl::Buffer::eventChangeName) {
// select a new Buffer ==> change title:
appl::Buffer* tmpp = m_bufferManager->getBufferSelected();
if (tmpp == NULL) {
setTitle("Edn");
if (m_widgetLabelFileName != NULL) {
m_widgetLabelFileName->setLabel("");
}
} else {
if (_msg.getMessage() == appl::MsgSelectNewFile) {
tmpp->registerOnEvent(this, appl::Buffer::eventIsModify);
tmpp->registerOnEvent(this, appl::Buffer::eventIsSave);
tmpp->registerOnEvent(this, appl::Buffer::eventChangeName);
}
setTitle(std::string("Edn : ") + (tmpp->isModify()==true?" *":"") + tmpp->getFileName());
if (m_widgetLabelFileName != NULL) {
m_widgetLabelFileName->setLabel(tmpp->getFileName() + (tmpp->isModify()==true?" *":""));
}
}
} else if (_msg.getMessage() == ednMsgGuiNew) {
(void)m_bufferManager->createNewBuffer();
} else if (_msg.getMessage() == ednEventPopUpFileSelected) {
APPL_DEBUG("Request opening the file : " << _msg.getData());
m_bufferManager->open(_msg.getData());
} else if (_msg.getMessage() == ednMsgGuiSave) {
APPL_DEBUG("Request saving the file : " << _msg.getData());
if (to_lower(_msg.getData()) == "current") {
appl::WorkerSaveFile* tmpWorker = new appl::WorkerSaveFile("", false);
return;
} else if (to_lower(_msg.getData()) == "all") {
appl::WorkerSaveAllFile* tmpWorker = new appl::WorkerSaveAllFile();
return;
} else {
APPL_ERROR("UNKNOW request : " << _msg);
}
} else if (_msg.getMessage() == ednMsgGuiSaveAs) {
appl::WorkerSaveFile* tmpWorker = new appl::WorkerSaveFile("", true);
} else if (_msg.getMessage() == ednMsgGuiClose) {
// Get a ref on the buffer selected (if null, no buffer was selected ...)
if (_msg.getData() == "current") {
appl::WorkerCloseFile* tmpWorker = new appl::WorkerCloseFile("");
} else {
appl::WorkerCloseAllFile* tmpWorker = new appl::WorkerCloseAllFile();
}
}
/* TODO :
} else if (_msg.getMessage() == mainWindowsRequestSaveFile) { // return after a choice of close...
if (m_bufferManager->exist(_msg.getData()) == false) {
APPL_ERROR("Try to save an non-existant file :" << _msg.getData());
return;
}
appl::Buffer* tmpBuffer = m_bufferManager->get(_msg.getData());
if (tmpBuffer == NULL) {
ememory::SharedPtr<appl::Buffer> tmpBuffer = m_bufferManager->get(_msg.getData());
if (tmpBuffer == nullptr) {
APPL_ERROR("Error to get the buffer : " << _msg.getData());
return;
}
@@ -424,8 +369,8 @@ void MainWindows::onReceiveMessage(const ewol::EMessage& _msg) {
APPL_ERROR("Try to save an non-existant file :" << _msg.getData());
return;
}
appl::Buffer* tmpBuffer = m_bufferManager->get(_msg.getData());
if (tmpBuffer == NULL) {
ememory::SharedPtr<appl::Buffer> tmpBuffer = m_bufferManager->get(_msg.getData());
if (tmpBuffer == nullptr) {
APPL_ERROR("Error to get the buffer : " << _msg.getData());
return;
}
@@ -435,64 +380,160 @@ void MainWindows::onReceiveMessage(const ewol::EMessage& _msg) {
APPL_ERROR("Try to save an non-existant file :" << _msg.getData());
return;
}
appl::Buffer* tmpBuffer = m_bufferManager->get(_msg.getData());
if (tmpBuffer == NULL) {
ememory::SharedPtr<appl::Buffer> tmpBuffer = m_bufferManager->get(_msg.getData());
if (tmpBuffer == nullptr) {
APPL_ERROR("Error to get the buffer : " << _msg.getData());
return;
}
// note: just remove ==> no check : normal case ...
tmpBuffer->removeObject();
//tmpBuffer->removeObject();
EWOL_TODO("call remove buffer ...");
}
return;
}
*/
void MainWindows::saveAsPopUp(appl::Buffer* _buffer) {
if (_buffer == NULL) {
APPL_ERROR("Call With NULL input...");
void MainWindows::displayOpen() {
ememory::SharedPtr<ewol::widget::FileChooser> tmpWidget = ewol::widget::FileChooser::create();
if (tmpWidget == nullptr) {
APPL_ERROR("Can not open File chooser !!! ");
return;
}
appl::WorkerSaveFile* tmpObject = new appl::WorkerSaveFile(_buffer->getFileName());
}
void MainWindows::closeNotSavedFile(appl::Buffer* _buffer) {
if (_buffer == NULL) {
APPL_ERROR("Call With NULL input...");
tmpWidget->propertyLabelTitle.set("_T{Open files ...}");
tmpWidget->propertyLabelValidate.set("_T{Open}");
if (m_bufferManager == nullptr) {
APPL_ERROR("can not call unexistant buffer manager ... ");
return;
}
widget::StdPopUp* tmpPopUp = new widget::StdPopUp();
if (tmpPopUp == NULL) {
// Get a ref on the buffer selected (if null, no buffer was selected ...)
ememory::SharedPtr<appl::Buffer> tmpBuffer = m_bufferManager->getBufferSelected();
if (tmpBuffer != nullptr) {
etk::FSNode tmpFile = tmpBuffer->getFileName();
tmpWidget->propertyPath.set(tmpFile.getNameFolder());
}
// apply widget pop-up ...
popUpWidgetPush(tmpWidget);
tmpWidget->signalValidate.connect(sharedFromThis(), &MainWindows::onCallbackPopUpFileSelected);
}
void MainWindows::displayProperty() {
// Request the parameter GUI
ememory::SharedPtr<ewol::widget::Parameter> tmpWidget = ewol::widget::Parameter::create();
if (tmpWidget == nullptr) {
APPL_ERROR("Can not allocate widget == > display might be in error");
return;
}
#if 0
std::string menuDescription = "<title>Properties</title>\n";
menuDescription += "<group title='_T{Editor}'>\n";
menuDescription += " <menu title='_T{Editor Interface}' short-title='Editor' widget='appl-text-viewer'>\n";
menuDescription += "</group>\n";
menuDescription += "<group title='_T{Gui}'>\n";
menuDescription += " <menu title='Font selection' short-title='Font' widget=''>\n";
menuDescription += " <menu title='Color selection' short-title='Color' widget=''>\n";
menuDescription += " <menu title='Theme selection' short-title='Theme' widget=''>\n";
menuDescription += "</group>\n";
tmpWidget->setMenu(menuDescription);
#else
tmpWidget->propertyLabelTitle.set("_T{Properties}");
popUpWidgetPush(tmpWidget);
tmpWidget->menuAddGroup("_T{Editor}");
ememory::SharedPtr<ewol::Widget> tmpSubWidget = globals::ParameterGlobalsGui::create();
tmpWidget->menuAdd("_T{Editor}", "", tmpSubWidget);
tmpWidget->menuAdd("_T{Font & Color}", "", nullptr);
tmpWidget->menuAdd("_T{Highlight}", "", nullptr);
tmpWidget->menuAddGroup("_T{General}");
tmpWidget->menuAdd("_T{Display}", "", nullptr);
tmpSubWidget = ParameterAboutGui::create();
tmpWidget->menuAdd("_T{About}", "", tmpSubWidget);
#endif
}
void MainWindows::onCallbackselectNewFile(const std::string& _value) {
APPL_INFO("onCallbackselectNewFile(" << _value << ")");
if (m_bufferManager == nullptr) {
APPL_ERROR("can not call unexistant buffer manager ... ");
return;
}
m_connectionSave.disconnect();
m_connectionModify.disconnect();
m_connectionSaveName.disconnect();
onCallbackTitleUpdate();
ememory::SharedPtr<appl::Buffer> tmpp = m_bufferManager->getBufferSelected();
if (tmpp != nullptr) {
m_connectionSave = tmpp->signalIsSave.connect(this, &MainWindows::onCallbackTitleUpdate);
m_connectionModify = tmpp->signalIsModify.connect(this, &MainWindows::onCallbackTitleUpdate);
m_connectionSaveName = tmpp->signalChangeName.connect(this, &MainWindows::onCallbackTitleUpdate);
}
}
void MainWindows::onCallbackPopUpFileSelected(const std::string& _value) {
APPL_INFO("onCallbackPopUpFileSelected(" << _value << ")");
APPL_DEBUG("Request opening the file : " << _value);
m_bufferManager->open(_value);
}
void MainWindows::onCallbackTitleUpdate() {
APPL_INFO("onCallbackTitleUpdate()");
if (m_bufferManager == nullptr) {
APPL_ERROR("can not call unexistant buffer manager ... ");
return;
}
// select a new Buffer ==> change title:
ememory::SharedPtr<appl::Buffer> tmpp = m_bufferManager->getBufferSelected();
if (tmpp == nullptr) {
propertyTitle.set("Edn");
if (m_widgetLabelFileName != nullptr) {
m_widgetLabelFileName->propertyValue.set("");
}
} else {
std::string nameFileSystem = etk::FSNode(tmpp->getFileName()).getFileSystemName();
propertyTitle.set(std::string("Edn : ") + (tmpp->isModify()==true?" *":"") + nameFileSystem);
if (m_widgetLabelFileName != nullptr) {
m_widgetLabelFileName->propertyValue.set(nameFileSystem + (tmpp->isModify()==true?" *":""));
}
}
}
void MainWindows::saveAsPopUp(const ememory::SharedPtr<appl::Buffer>& _buffer) {
if (_buffer == nullptr) {
APPL_ERROR("Call With nullptr input...");
return;
}
ememory::SharedPtr<appl::WorkerSaveFile> tmpObject = appl::WorkerSaveFile::create("buffer-name", _buffer->getFileName());
}
void MainWindows::closeNotSavedFile(const ememory::SharedPtr<appl::Buffer>& _buffer) {
if (_buffer == nullptr) {
APPL_ERROR("Call With nullptr input...");
return;
}
ememory::SharedPtr<ewol::widget::StdPopUp> tmpPopUp = ewol::widget::StdPopUp::create();
if (tmpPopUp == nullptr) {
APPL_ERROR("Can not create a simple pop-up");
return;
}
tmpPopUp->setTitle("<bold>Close un-saved file:</bold>");
tmpPopUp->setComment("The file named : <i>\"" + _buffer->getFileName() + "\"</i> is curently modify. <br/>If you don't saves these modifications,<br/>they will be definitly lost...");
ewol::Widget* bt = NULL;
tmpPopUp->propertyTitle.set("<bold>_T{Close un-saved file:}</bold>");
tmpPopUp->propertyComment.set("_T{The file named:} <i>\"" + _buffer->getFileName() + "\"</i> _T{is curently modify.} <br/>_T{If you don't saves these modifications,<br/>they will be definitly lost...}");
ememory::SharedPtr<ewol::widget::Button> bt = nullptr;
if (_buffer->hasFileName() == true) {
bt = tmpPopUp->addButton("Save", true);
if (bt != NULL) {
bt = tmpPopUp->addButton("_T{Save}", true);
if (bt != nullptr) {
// TODO : The element is removed before beeing pressed
bt->registerOnEvent(this, widget::Button::eventPressed, mainWindowsRequestSaveFile, _buffer->getFileName());
bt->registerOnEvent(this, widget::Button::eventPressed, mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
// TODO : bt->signalPressed.connect(sharedFromThis(), mainWindowsRequestSaveFile, _buffer->getFileName());
// TODO : bt->signalPressed.connect(sharedFromThis(), mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
}
}
bt = tmpPopUp->addButton("Save As", true);
if (bt != NULL) {
bt->registerOnEvent(this, widget::Button::eventPressed, mainWindowsRequestSaveFileAs, _buffer->getFileName());
//bt->registerOnEvent(this, widget::Button::eventPressed, mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
bt = tmpPopUp->addButton("_T{Save As}", true);
if (bt != nullptr) {
// TODO : bt->signalPressed.connect(sharedFromThis(), mainWindowsRequestSaveFileAs, _buffer->getFileName());
//bt->signalPressed.connect(sharedFromThis(), mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
// TODO : Request the close when saved ...
}
bt = tmpPopUp->addButton("Close", true);
if (bt != NULL) {
bt->registerOnEvent(this, widget::Button::eventPressed, mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
bt = tmpPopUp->addButton("_T{Close}", true);
if (bt != nullptr) {
// TODO : bt->signalPressed.connect(sharedFromThis(), mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
}
tmpPopUp->addButton("Cancel", true);
tmpPopUp->setRemoveOnExternClick(true);
tmpPopUp->addButton("_T{Cancel}", true);
tmpPopUp->propertyCloseOutEvent.set(true);
popUpWidgetPush(tmpPopUp);
}
void MainWindows::onObjectRemove(ewol::EObject* _removeObject) {
ewol::Windows::onObjectRemove(_removeObject);
if (m_widgetLabelFileName == _removeObject) {
m_widgetLabelFileName = NULL;
}
}

View File

@@ -1,13 +1,9 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#ifndef __MAIN_WINDOWS_H__
#define __MAIN_WINDOWS_H__
#pragma once
#include <appl/debug.h>
#include <appl/globalMsg.h>
@@ -16,33 +12,43 @@
#include <appl/BufferManager.h>
#include <ewol/widget/Label.h>
#include <appl/BufferManager.h>
class MainWindows : public ewol::Windows {
#include <appl/Gui/Search.h>
#include <appl/Gui/ViewerManager.h>
class MainWindows : public ewol::widget::Windows {
private:
int32_t m_currentSavingAsIdBuffer;
widget::Label* m_widgetLabelFileName;
public:
ewol::widget::LabelShared m_widgetLabelFileName;
appl::widget::SearchShared m_widgetSearch;
esignal::Connection m_connectionSave;
esignal::Connection m_connectionModify;
esignal::Connection m_connectionSaveName;
protected:
// Constructeur
MainWindows(void);
~MainWindows(void);
MainWindows();
void init();
public:
DECLARE_FACTORY(MainWindows);
virtual ~MainWindows();
private:
appl::BufferManager* m_bufferManager; //!< handle on the buffer manager
ememory::SharedPtr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
ememory::SharedPtr<appl::ViewerManager> m_viewerManager; //!< handle on the buffer manager
/**
* @brief Display a pop-up to the select the name of the file.
* @param[in] _buffer Buffer that might be saved with a new name.
*/
void saveAsPopUp(appl::Buffer* _buffer);
void saveAsPopUp(const ememory::SharedPtr<appl::Buffer>& _buffer);
/**
* @brief Display a pop-up to the user to confirm wat he want to do when he close a file not saved.
* @param[in] _buffer Buffer that might be close.
*/
void closeNotSavedFile(appl::Buffer* _buffer);
public: // Derived function
virtual void onReceiveMessage(const ewol::EMessage& _msg);
virtual void onObjectRemove(ewol::EObject * _removeObject);
void closeNotSavedFile(const ememory::SharedPtr<appl::Buffer>& _buffer);
void displayOpen();
void displayProperty();
private:
void onCallbackPopUpFileSelected(const std::string& _value);
void onCallbackTitleUpdate();
void onCallbackMenuEvent(const std::string& _value);
void onCallbackShortCut(const std::string& _value);
void onCallbackselectNewFile(const std::string& _value);
};
#endif

View File

@@ -1,79 +1,60 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include "appl/global.h"
#include "appl/Gui/Search.h"
#include "appl/BufferManager.h"
#include "appl/Gui/TextViewer.h"
#include "appl/Gui/MainWindows.h"
#include "appl/globalMsg.h"
#include <ewol/widget/Button.h>
#include <ewol/widget/Entry.h>
#undef __class__
#define __class__ "Search"
const char* const l_eventSearchEntry = "appl-search-entry";
const char* const l_eventSearchEntryEnter = "appl-search-entry-enter";
const char* const l_eventReplaceEntry = "appl-replace-entry";
const char* const l_eventReplaceEntryEnter = "appl-replace-entry-enter";
const char* const l_eventSearchBt = "appl-search-button";
const char* const l_eventReplaceBt = "appl-replace-button";
const char* const l_eventCaseCb = "appl-case-sensitive-CheckBox";
const char* const l_eventWrapCb = "appl-wrap-CheckBox";
const char* const l_eventForwardCb = "appl-forward-CheckBox";
const char* const l_eventHideBt = "appl-hide-button";
Search::Search(void) :
widget::Composer(widget::Composer::file, "DATA:GUI-Search.xml"),
m_viewerManager(NULL),
appl::widget::Search::Search() :
m_forward(true),
m_caseSensitive(false),
m_wrap(true),
m_searchEntry(NULL),
m_replaceEntry(NULL) {
addObjectType("appl::Search");
// load buffer manager:
m_viewerManager = appl::ViewerManager::keep();
m_wrap(true) {
addObjectType("appl::widget::Search");
}
void appl::widget::Search::init() {
ewol::widget::Composer::init();
loadFromFile("DATA:GUI-Search.xml");
m_viewerManager = appl::ViewerManager::create();
// link event
registerOnEventNameWidget(this, "SEARCH:close", "pressed", l_eventHideBt);
registerOnEventNameWidget(this, "SEARCH:search-entry", "modify", l_eventSearchEntry);
registerOnEventNameWidget(this, "SEARCH:search-entry", "enter", l_eventSearchEntryEnter);
registerOnEventNameWidget(this, "SEARCH:search", "pressed", l_eventSearchBt);
registerOnEventNameWidget(this, "SEARCH:replace-entry", "modify", l_eventReplaceEntry);
registerOnEventNameWidget(this, "SEARCH:replace-entry", "enter", l_eventReplaceEntryEnter);
registerOnEventNameWidget(this, "SEARCH:replace", "pressed", l_eventReplaceBt);
registerOnEventNameWidget(this, "SEARCH:case", "value", l_eventCaseCb);
registerOnEventNameWidget(this, "SEARCH:wrap", "value", l_eventWrapCb);
registerOnEventNameWidget(this, "SEARCH:up-down", "value", l_eventForwardCb);
subBind(ewol::widget::Button, "SEARCH:close", signalPressed, sharedFromThis(), &appl::widget::Search::OnCallbackHide);
subBind(ewol::widget::Entry, "SEARCH:search-entry", signalModify, sharedFromThis(), &appl::widget::Search::OnCallbackSearchValue);
subBind(ewol::widget::Entry, "SEARCH:search-entry", signalEnter, sharedFromThis(), &appl::widget::Search::OnCallbackSearchEntryValidate);
subBind(ewol::widget::Button, "SEARCH:search", signalPressed, sharedFromThis(), &appl::widget::Search::OnCallbackSearch);
subBind(ewol::widget::Entry, "SEARCH:replace-entry", signalModify, sharedFromThis(), &appl::widget::Search::OnCallbackReplaceValue);
subBind(ewol::widget::Entry, "SEARCH:replace-entry", signalEnter, sharedFromThis(), &appl::widget::Search::OnCallbackReplaceEntryValidate);
subBind(ewol::widget::Button, "SEARCH:replace", signalPressed, sharedFromThis(), &appl::widget::Search::OnCallbackReplace);
subBind(ewol::widget::Button, "SEARCH:case", signalValue, sharedFromThis(), &appl::widget::Search::OnCallbackCase);
subBind(ewol::widget::Button, "SEARCH:wrap", signalValue, sharedFromThis(), &appl::widget::Search::OnCallbackWrap);
subBind(ewol::widget::Button, "SEARCH:up-down", signalValue, sharedFromThis(), &appl::widget::Search::OnCallbackForward);
// set default properties
setConfigNamed("SEARCH:case", "value", std::to_string(m_caseSensitive));
setConfigNamed("SEARCH:wrap", "value", std::to_string(m_wrap));
setConfigNamed("SEARCH:up-down", "value", std::to_string(m_forward));
propertySetOnWidgetNamed("SEARCH:case", "value", etk::to_string(m_caseSensitive));
propertySetOnWidgetNamed("SEARCH:wrap", "value", etk::to_string(m_wrap));
propertySetOnWidgetNamed("SEARCH:up-down", "value", etk::to_string(m_forward));
// get widget
m_searchEntry = dynamic_cast<widget::Entry*>(getWidgetNamed("SEARCH:search-entry"));
m_replaceEntry = dynamic_cast<widget::Entry*>(getWidgetNamed("SEARCH:replace-entry"));
// Display and hide event:
registerMultiCast(ednMsgGuiSearch);
m_searchEntry = ememory::dynamicPointerCast<ewol::widget::Entry>(getSubObjectNamed("SEARCH:search-entry"));
m_replaceEntry = ememory::dynamicPointerCast<ewol::widget::Entry>(getSubObjectNamed("SEARCH:replace-entry"));
// basicly hiden ...
hide();
propertyHide.set(true);
}
Search::~Search(void) {
appl::ViewerManager::release(m_viewerManager);
appl::widget::Search::~Search() {
}
void Search::find(void) {
if (m_viewerManager == NULL) {
void appl::widget::Search::find() {
if (m_viewerManager == nullptr) {
APPL_WARNING("No viewer manager selected!!!");
return;
}
appl::TextViewer* viewer = m_viewerManager->getViewerSelected();
if (viewer == NULL) {
ememory::SharedPtr<appl::TextViewer> viewer = m_viewerManager->getViewerSelected();
if (viewer == nullptr) {
APPL_INFO("No viewer selected!!!");
return;
}
@@ -103,13 +84,13 @@ void Search::find(void) {
}
}
void Search::replace(void) {
if (m_viewerManager == NULL) {
void appl::widget::Search::replace() {
if (m_viewerManager == nullptr) {
APPL_WARNING("No viewer manager selected!!!");
return;
}
appl::TextViewer* viewer = m_viewerManager->getViewerSelected();
if (viewer == NULL) {
ememory::SharedPtr<appl::TextViewer> viewer = m_viewerManager->getViewerSelected();
if (viewer == nullptr) {
APPL_INFO("No viewer selected!!!");
return;
}
@@ -120,58 +101,64 @@ void Search::replace(void) {
viewer->replace(m_replaceData);
}
void appl::widget::Search::OnCallbackHide() {
propertyHide.set(true);
}
void appl::widget::Search::OnCallbackSearchValue(const std::string& _value) {
m_searchData = etk::to_u32string(_value);
}
void appl::widget::Search::OnCallbackSearch() {
find();
}
void appl::widget::Search::OnCallbackSearchEntryValidate(const std::string& _value) {
m_searchData = etk::to_u32string(_value);
find();
}
void appl::widget::Search::OnCallbackReplaceValue(const std::string& _value) {
m_replaceData = etk::to_u32string(_value);
}
void appl::widget::Search::OnCallbackReplace() {
replace();
find();
}
void appl::widget::Search::OnCallbackReplaceEntryValidate(const std::string& _value) {
m_replaceData = etk::to_u32string(_value);
replace();
find();
}
void appl::widget::Search::OnCallbackCase(const bool& _value) {
m_caseSensitive = _value;
}
void appl::widget::Search::OnCallbackWrap(const bool& _value) {
m_wrap = _value;
}
void appl::widget::Search::OnCallbackForward(const bool& _value) {
m_forward = _value;
}
void Search::onReceiveMessage(const ewol::EMessage& _msg) {
widget::Composer::onReceiveMessage(_msg);
APPL_INFO("Search receive message : " << _msg);
if ( _msg.getMessage() == l_eventSearchEntry) {
m_searchData = to_u32string(_msg.getData());
} else if ( _msg.getMessage() == l_eventSearchEntryEnter
|| _msg.getMessage() == l_eventSearchBt) {
find();
} else if ( _msg.getMessage() == l_eventReplaceEntry) {
m_replaceData = to_u32string(_msg.getData());
} else if ( _msg.getMessage() == l_eventReplaceEntryEnter
|| _msg.getMessage() == l_eventReplaceBt) {
replace();
find();
} else if ( _msg.getMessage() == l_eventCaseCb) {
m_caseSensitive = stobool(_msg.getData());
} else if ( _msg.getMessage() == l_eventWrapCb) {
m_wrap = stobool(_msg.getData());
} else if ( _msg.getMessage() == l_eventForwardCb) {
m_forward = stobool(_msg.getData());
} else if ( _msg.getMessage() == l_eventHideBt) {
hide();
} else if ( _msg.getMessage() == ednMsgGuiSearch) {
if (true == isHide()) {
show();
if (m_searchEntry!= NULL) {
m_searchEntry->keepFocus();
}
} else {
if( (m_searchEntry!=NULL && true == m_searchEntry->getFocus())
|| (m_replaceEntry!=NULL && true == m_replaceEntry->getFocus()) ) {
hide();
} else if (m_searchEntry!= NULL) {
m_searchEntry->keepFocus();
} else {
hide();
}
}
void appl::widget::Search::selectSearch() {
if (m_searchEntry != nullptr) {
m_searchEntry->keepFocus();
}
}
void Search::onObjectRemove(ewol::EObject * _removeObject) {
widget::Composer::onObjectRemove(_removeObject);
if (_removeObject == m_searchEntry) {
m_searchEntry = NULL;
bool appl::widget::Search::isSelectSearch() {
if (m_searchEntry != nullptr) {
return m_searchEntry->getFocus();
}
if (_removeObject == m_replaceEntry) {
m_replaceEntry = NULL;
}
if (_removeObject == m_viewerManager) {
m_viewerManager = NULL;
return false;
}
void appl::widget::Search::selectReplace() {
if (m_replaceEntry != nullptr) {
m_replaceEntry->keepFocus();
}
}
bool appl::widget::Search::isSelectReplace() {
if (m_replaceEntry != nullptr) {
return m_replaceEntry->getFocus();
}
return false;
}

View File

@@ -1,48 +1,62 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#ifndef __SEARCH_H__
#define __SEARCH_H__
#pragma once
#include <appl/debug.h>
#include <ewol/widget/Composer.h>
#include <ewol/widget/Entry.h>
#include <appl/Buffer.h>
#include <appl/Gui/ViewerManager.h>
class Search : public widget::Composer {
private:
appl::ViewerManager* m_viewerManager; //!< handle on the buffer manager
bool m_forward;
bool m_caseSensitive;
bool m_wrap;
widget::Entry* m_searchEntry;
widget::Entry* m_replaceEntry;
std::u32string m_searchData;
std::u32string m_replaceData;
public:
// Constructeur
Search(void);
~Search(void);
private:
/**
* @brief Find the next element that corespond at the search
*/
void find(void);
/**
* @brief Replace the current selected text.
*/
void replace(void);
public: // derived function
virtual void onReceiveMessage(const ewol::EMessage& _msg);
virtual void onObjectRemove(ewol::EObject * _removeObject);
};
#endif
namespace appl {
namespace widget {
class Search;
using SearchShared = ememory::SharedPtr<appl::widget::Search>;
using SearchWeak = ememory::WeakPtr<appl::widget::Search>;
class Search : public ewol::widget::Composer {
private:
ememory::SharedPtr<appl::ViewerManager> m_viewerManager; //!< handle on the buffer manager
bool m_forward;
bool m_caseSensitive;
bool m_wrap;
ememory::SharedPtr<ewol::widget::Entry> m_searchEntry;
ememory::SharedPtr<ewol::widget::Entry> m_replaceEntry;
std::u32string m_searchData;
std::u32string m_replaceData;
protected:
// Constructeur
Search();
void init();
public:
DECLARE_FACTORY(Search);
virtual ~Search();
private:
/**
* @brief Find the next element that corespond at the search
*/
void find();
/**
* @brief Replace the current selected text.
*/
void replace();
public:
void selectSearch();
bool isSelectSearch();
void selectReplace();
bool isSelectReplace();
private: // callback functions
void OnCallbackHide();
void OnCallbackSearchValue(const std::string& _value);
void OnCallbackSearch();
void OnCallbackSearchEntryValidate(const std::string& _value);
void OnCallbackReplaceValue(const std::string& _value);
void OnCallbackReplace();
void OnCallbackReplaceEntryValidate(const std::string& _value);
void OnCallbackCase(const bool& _value);
void OnCallbackWrap(const bool& _value);
void OnCallbackForward(const bool& _value);
};
};
}

View File

@@ -1,44 +1,43 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <etk/tool.h>
#include <appl/Gui/TagFileList.h>
#undef __class__
#define __class__ "TagFileList"
extern const char * const applEventCtagsListSelect = "appl-event-ctags-list-select";
extern const char * const applEventCtagsListUnSelect = "appl-event-ctags-list-un-select";
extern const char * const applEventCtagsListValidate = "appl-event-ctags-list-validate";
appl::TagFileList::TagFileList(void) {
appl::TagFileList::TagFileList() :
signalSelect(this, "select", ""),
signalValidate(this, "validate", ""),
signalUnSelect(this, "unselect", "") {
addObjectType("appl::TagFileList");
m_selectedLine = -1;
addEventId(applEventCtagsListSelect);
addEventId(applEventCtagsListValidate);
setMouseLimit(1);
// Load color properties: (use file list to be generic ...)
m_colorProperty = ewol::resource::ColorFile::create("THEME:COLOR:ListFileSystem.json");
if (m_colorProperty != nullptr) {
m_colorIdText = m_colorProperty->request("text");
m_colorIdBackground1 = m_colorProperty->request("background1");
m_colorIdBackground2 = m_colorProperty->request("background2");
m_colorIdBackgroundSelected = m_colorProperty->request("selected");
}
}
void appl::TagFileList::init() {
ewol::widget::List::init();
}
appl::TagFileList::~TagFileList(void) {
for (int32_t iii=0; iii<m_list.size(); iii++) {
if (NULL != m_list[iii]) {
delete(m_list[iii]);
m_list[iii] = NULL;
}
appl::TagFileList::~TagFileList() {
for (auto &it : m_list) {
delete(it);
it = nullptr;
}
}
etk::Color<> appl::TagFileList::getBasicBG(void) {
etk::Color<> appl::TagFileList::getBasicBG() {
return 0x00000010;
}
uint32_t appl::TagFileList::getNuberOfColomn(void) {
uint32_t appl::TagFileList::getNuberOfColomn() {
return 2;
}
@@ -47,65 +46,53 @@ bool appl::TagFileList::getTitle(int32_t _colomn, std::string& _myTitle, etk::Co
return true;
}
uint32_t appl::TagFileList::getNuberOfRaw(void) {
uint32_t appl::TagFileList::getNuberOfRaw() {
return m_list.size();
}
bool appl::TagFileList::getElement(int32_t _colomn, int32_t _raw, std::string& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg) {
if (_raw >= 0 && _raw < m_list.size() && NULL != m_list[_raw]) {
if (_raw >= 0 && (size_t)_raw < m_list.size() && nullptr != m_list[_raw]) {
if (0 == _colomn) {
_myTextToWrite = std::to_string(m_list[_raw]->fileLine);
_myTextToWrite = etk::to_string(m_list[_raw]->fileLine);
} else {
_myTextToWrite = m_list[_raw]->filename;
}
} else {
_myTextToWrite = "ERROR";
}
_fg = etk::color::black;
_fg = m_colorProperty->get(m_colorIdText);
if (_raw % 2) {
if (_colomn%2 == 0) {
_bg = 0xFFFFFF00;
} else {
_bg = 0xFFFFFF10;
}
_bg = m_colorProperty->get(m_colorIdBackground1);
} else {
if (_colomn%2 == 0) {
_bg = 0xBFBFBFFF;
} else {
_bg = 0xCFCFCFFF;
}
_bg = m_colorProperty->get(m_colorIdBackground2);
}
if (m_selectedLine == _raw) {
if (_colomn%2 == 0) {
_bg = 0x8F8FFFFF;
} else {
_bg = 0x7F7FFFFF;
}
_bg = m_colorProperty->get(m_colorIdBackgroundSelected);
}
return true;
};
bool appl::TagFileList::onItemEvent(int32_t _IdInput, enum ewol::keyEvent::status _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y) {
if (_typeEvent == ewol::keyEvent::statusSingle) {
bool appl::TagFileList::onItemEvent(int32_t _IdInput, enum gale::key::status _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y) {
if (_typeEvent == gale::key::status::pressSingle) {
EWOL_INFO("Event on List : IdInput=" << _IdInput << " colomn=" << _colomn << " raw=" << _raw );
if (_IdInput == 1) {
int32_t previousRaw = m_selectedLine;
if (_raw > m_list.size() ) {
if (_raw > (int64_t)m_list.size() ) {
m_selectedLine = -1;
} else {
m_selectedLine = _raw;
}
const char * event = applEventCtagsListValidate;
if (previousRaw != m_selectedLine) {
event = applEventCtagsListSelect;
}
if( m_selectedLine >= 0
&& m_selectedLine < m_list.size()
&& NULL != m_list[m_selectedLine] ) {
generateEventId(event, std::to_string(m_list[_raw]->fileLine)+":"+m_list[m_selectedLine]->filename);
&& m_selectedLine < (int64_t)m_list.size()
&& nullptr != m_list[m_selectedLine] ) {
if (previousRaw != m_selectedLine) {
signalSelect.emit(etk::to_string(m_list[_raw]->fileLine)+":"+m_list[m_selectedLine]->filename);
} else {
signalValidate.emit(etk::to_string(m_list[_raw]->fileLine)+":"+m_list[m_selectedLine]->filename);
}
} else {
generateEventId(applEventCtagsListUnSelect);
signalUnSelect.emit();
}
// need to regenerate the display of the list :
markToRedraw();
@@ -123,7 +110,7 @@ bool appl::TagFileList::onItemEvent(int32_t _IdInput, enum ewol::keyEvent::statu
*/
void appl::TagFileList::add(std::string& _file, int32_t _line) {
appl::TagListElement *tmpFile = new appl::TagListElement(_file, _line);
if (NULL != tmpFile) {
if (nullptr != tmpFile) {
m_list.push_back(tmpFile);
}
markToRedraw();

View File

@@ -1,21 +1,12 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#ifndef __APPL_CTAGS_LIST_H__
#define __APPL_CTAGS_LIST_H__
#pragma once
#include <appl/debug.h>
#include <ewol/widget/List.h>
extern const char * const applEventCtagsListSelect;
extern const char * const applEventCtagsListValidate;
extern const char * const applEventCtagsListUnSelect;
#include <ewol/resource/ColorFile.h>
namespace appl {
class TagListElement {
@@ -27,24 +18,37 @@ namespace appl {
fileLine(_line) {
};
~TagListElement(void) {
virtual ~TagListElement() {
};
};
class TagFileList : public widget::List {
class TagFileList : public ewol::widget::List {
public:
esignal::Signal<std::string> signalSelect;
esignal::Signal<std::string> signalValidate;
esignal::Signal<> signalUnSelect;
private:
int32_t m_selectedLine;
std::vector<appl::TagListElement*> m_list;
protected:
ememory::SharedPtr<ewol::resource::ColorFile> m_colorProperty; //!< theme color property.
int32_t m_colorIdText; //!< Color of the text.
int32_t m_colorIdBackground1; //!< Color of the Background.
int32_t m_colorIdBackground2; //!< Color of the Background 2.
int32_t m_colorIdBackgroundSelected; //!< Color of line selected.
protected:
TagFileList();
void init();
public:
TagFileList(void);
~TagFileList(void);
DECLARE_FACTORY(TagFileList);
virtual ~TagFileList();
// display API :
virtual etk::Color<> getBasicBG(void);
uint32_t getNuberOfColomn(void);
virtual etk::Color<> getBasicBG();
uint32_t getNuberOfColomn();
bool getTitle(int32_t _colomn, std::string& _myTitle, etk::Color<>& _fg, etk::Color<>& _bg);
uint32_t getNuberOfRaw(void);
uint32_t getNuberOfRaw();
bool getElement(int32_t _colomn, int32_t _raw, std::string& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg);
bool onItemEvent(int32_t _IdInput, enum ewol::keyEvent::status _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y);
bool onItemEvent(int32_t _IdInput, enum gale::key::status _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y);
public:
/**
* @brief add a Ctags item on the curent list
@@ -53,10 +57,5 @@ namespace appl {
*/
void add(std::string& _file, int32_t _line);
};
};
#endif
}

View File

@@ -1,17 +1,14 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <appl/Gui/TagFileSelection.h>
#include <ewol/widget/Sizer.h>
#include <ewol/widget/List.h>
#include <ewol/widget/Spacer.h>
#include <ewol/widget/Image.h>
#include <ewol/widget/WidgetManager.h>
#include <ewol/widget/Manager.h>
#include <vector>
#include <etk/tool.h>
#include <ewol/widget/Button.h>
@@ -20,116 +17,107 @@
#include <ewol/ewol.h>
#undef __class__
#define __class__ "TagFileSelection"
extern const char * const applEventctagsSelection = "appl-event-ctags-validate";
extern const char * const applEventctagsCancel = "appl-event-ctags-cancel";
appl::TagFileSelection::TagFileSelection(void) {
appl::TagFileSelection::TagFileSelection() :
signalSelect(this, "select", ""),
signalCancel(this, "cancel", "") {
addObjectType("appl::TagFileSelection");
addEventId(applEventctagsSelection);
addEventId(applEventctagsCancel);
widget::Label* myWidgetTitle = NULL;
widget::Button* myWidgetValidate = NULL;
widget::Button* myWidgetCancel = NULL;
widget::Sizer * mySizerVert = NULL;
widget::Sizer * mySizerHori = NULL;
widget::Spacer * mySpacer = NULL;
}
void appl::TagFileSelection::init() {
ewol::widget::PopUp::init();
ewol::widget::SizerShared mySizerVert;
#if defined(__TARGET_OS__Android)
setMinSize(ewol::Dimension(vec2(90,90),ewol::Dimension::Pourcent));
propertyMinSize.set(gale::Dimension(vec2(90,90), gale::distance::pourcent));
#elif defined(__TARGET_OS__Windows)
setMinSize(ewol::Dimension(vec2(80,80),ewol::Dimension::Pourcent));
propertyMinSize.set(gale::Dimension(vec2(80,80), gale::distance::pourcent));
#else
setMinSize(ewol::Dimension(vec2(80,80),ewol::Dimension::Pourcent));
propertyMinSize.set(gale::Dimension(vec2(80,80), gale::distance::pourcent));
#endif
mySizerVert = new widget::Sizer(widget::Sizer::modeVert);
if (NULL == mySizerVert) {
mySizerVert = ewol::widget::Sizer::create();
if (mySizerVert == nullptr) {
EWOL_ERROR("Can not allocate widget == > display might be in error");
return;
}
mySizerVert->propertyMode.set(ewol::widget::Sizer::modeVert);
mySizerVert->propertyLockExpand.set(bvec2(true,true));
mySizerVert->propertyExpand.set(bvec2(true,true));
// set it in the pop-up-system :
setSubWidget(mySizerVert);
ewol::WidgetShared compose = ewol::widget::composerGenerateString(
"<sizer mode='hori' expand='true,false' lock='false,true'>\n"
" <spacer expand='true,false'/>\n"
" <button name='PLUGIN-CTAGS-jump' expand='false' fill='true'>"
" <sizer mode='hori'>\n"
" <image src='THEME:GUI:Load.svg' fill='true' size='10,10mm'/>\n"
" <label>Jump</label>\n"
" </sizer>\n"
" </button>\n"
" <button name='PLUGIN-CTAGS-cancel' expand='false' fill='true'>"
" <sizer mode='hori'>\n"
" <image src='THEME:GUI:Remove.svg' fill='true' size='10,10mm'/>\n"
" <label>Cancel</label>\n"
" </sizer>\n"
" </button>\n"
"</sizer>\n");
mySizerVert->subWidgetAdd(compose);
externSubBind(compose, ewol::widget::Button, "PLUGIN-CTAGS-jump", signalPressed, sharedFromThis(), &appl::TagFileSelection::onCallbackCtagsSelection);
externSubBind(compose, ewol::widget::Button, "PLUGIN-CTAGS-cancel", signalPressed, sharedFromThis(), &appl::TagFileSelection::onCallbackCtagsCancel);
m_listTag = appl::TagFileList::create();
if (m_listTag == nullptr) {
EWOL_ERROR("Can not allocate widget == > display might be in error");
} else {
mySizerVert->lockExpand(bvec2(true,true));
mySizerVert->setExpand(bvec2(true,true));
// set it in the pop-up-system :
setSubWidget(mySizerVert);
widget::Composer* compose = new widget::Composer(widget::Composer::String,
"<sizer mode=\"hori\" expand=\"true,false\" lock=\"false,true\">\n"
" <spacer expand=\"true,false\"/>\n"
" <button name=\"PLUGIN-CTAGS-jump\" expand=\"false\" fill=\"true\">"
" <sizer mode=\"hori\">\n"
" <image src=\"THEME:GUI:Load.svg\" fill=\"true\" size=\"10,10mm\"/>\n"
" <label>Jump</label>\n"
" </sizer>\n"
" </button>\n"
" <button name=\"PLUGIN-CTAGS-cancel\" expand=\"false\" fill=\"true\">"
" <sizer mode=\"hori\">\n"
" <image src=\"THEME:GUI:Remove.svg\" fill=\"true\" size=\"10,10mm\"/>\n"
" <label>Cancel</label>\n"
" </sizer>\n"
" </button>\n"
"</sizer>\n");
compose->setExpand(bvec2(true,false));
compose->setFill(bvec2(true,true));
mySizerVert->subWidgetAdd(compose);
compose->registerOnEventNameWidget(this, "PLUGIN-CTAGS-jump", "pressed", applEventctagsSelection);
compose->registerOnEventNameWidget(this, "PLUGIN-CTAGS-cancel", "pressed", applEventctagsCancel);
m_listTag = new appl::TagFileList();
if (NULL == m_listTag) {
EWOL_ERROR("Can not allocate widget == > display might be in error");
} else {
m_listTag->registerOnEvent(this, applEventCtagsListValidate);
m_listTag->registerOnEvent(this, applEventCtagsListSelect);
m_listTag->registerOnEvent(this, applEventCtagsListUnSelect);
m_listTag->setExpand(bvec2(true,true));
m_listTag->setFill(bvec2(true,true));
mySizerVert->subWidgetAdd(m_listTag);
}
myWidgetTitle = new widget::Label("Ctags Jump Selection ...");
if (NULL == myWidgetTitle) {
EWOL_ERROR("Can not allocate widget == > display might be in error");
} else {
mySizerVert->subWidgetAdd(myWidgetTitle);
}
m_listTag->signalValidate.connect(sharedFromThis(), &appl::TagFileSelection::onCallbackCtagsListValidate);
m_listTag->signalSelect.connect(sharedFromThis(), &appl::TagFileSelection::onCallbackCtagsListSelect);
m_listTag->signalUnSelect.connect(sharedFromThis(), &appl::TagFileSelection::onCallbackCtagsListUnSelect);
m_listTag->propertyExpand.set(bvec2(true,true));
m_listTag->propertyFill.set(bvec2(true,true));
mySizerVert->subWidgetAdd(m_listTag);
}
ewol::widget::LabelShared myWidgetTitle = ewol::widget::Label::create();
if (myWidgetTitle == nullptr) {
EWOL_ERROR("Can not allocate widget == > display might be in error");
return;
}
myWidgetTitle->propertyValue.set("Ctags Jump Selection ...");
mySizerVert->subWidgetAdd(myWidgetTitle);
}
appl::TagFileSelection::~TagFileSelection(void) {
appl::TagFileSelection::~TagFileSelection() {
}
void appl::TagFileSelection::onReceiveMessage(const ewol::EMessage& _msg) {
EWOL_INFO("ctags LIST ... : " << _msg );
if (_msg.getMessage() == applEventctagsSelection) {
if (m_eventNamed!="") {
generateEventId(applEventctagsSelection, m_eventNamed);
// == > Auto remove ...
autoDestroy();
}
} else if (_msg.getMessage() == applEventCtagsListSelect) {
m_eventNamed = _msg.getData();
} else if (_msg.getMessage() == applEventCtagsListUnSelect) {
m_eventNamed = "";
} else if (_msg.getMessage() == applEventCtagsListValidate) {
generateEventId(applEventctagsSelection, _msg.getData());
// == > Auto remove ...
autoDestroy();
} else if (_msg.getMessage() == applEventctagsCancel) {
generateEventId(applEventctagsCancel, "");
void appl::TagFileSelection::onCallbackCtagsSelection() {
if (m_eventNamed != "") {
signalSelect.emit(m_eventNamed);
// == > Auto remove ...
autoDestroy();
}
return;
};
}
void appl::TagFileSelection::onCallbackCtagsCancel() {
signalCancel.emit();
// == > Auto remove ...
autoDestroy();
}
void appl::TagFileSelection::onCallbackCtagsListValidate(const std::string& _value) {
signalSelect.emit(_value);
// == > Auto remove ...
autoDestroy();
}
void appl::TagFileSelection::onCallbackCtagsListSelect(const std::string& _value) {
m_eventNamed = _value;
}
void appl::TagFileSelection::onCallbackCtagsListUnSelect() {
m_eventNamed = "";
}
/**
@@ -138,21 +126,8 @@ void appl::TagFileSelection::onReceiveMessage(const ewol::EMessage& _msg) {
* @param[in] jump line id
*/
void appl::TagFileSelection::addCtagsNewItem(std::string _file, int32_t _line) {
if (NULL != m_listTag) {
if (m_listTag != nullptr) {
m_listTag->add(_file, _line);
}
}
void appl::TagFileSelection::onObjectRemove(ewol::EObject * _removeObject) {
// First step call parrent :
widget::PopUp::onObjectRemove(_removeObject);
// second step find if in all the elements ...
if(_removeObject == m_listTag) {
m_listTag = NULL;
}
}

View File

@@ -1,41 +1,39 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#ifndef __APPL_CTAGS_SELECTION_H__
#define __APPL_CTAGS_SELECTION_H__
#pragma once
#include <appl/debug.h>
#include <ewol/widget/PopUp.h>
#include <appl/Gui/TagFileList.h>
extern const char * const applEventctagsSelection;
extern const char * const applEventctagsCancel;
namespace appl {
class TagFileSelection : public widget::PopUp {
class TagFileSelection : public ewol::widget::PopUp {
public:
esignal::Signal<std::string> signalSelect;
esignal::Signal<> signalCancel;
private:
appl::TagFileList* m_listTag;
ememory::SharedPtr<appl::TagFileList> m_listTag;
std::string m_eventNamed;
public:
TagFileSelection(void);
virtual ~TagFileSelection(void);
TagFileSelection();
void init();
public:
DECLARE_FACTORY(TagFileSelection);
virtual ~TagFileSelection();
/**
* @brief add a Ctags item on the curent list
* @param[in] file Compleate file name
* @param[in] jump line id
*/
void addCtagsNewItem(std::string file, int32_t line);
public: // herited function
void onReceiveMessage(const ewol::EMessage& _msg);
void onObjectRemove(ewol::EObject * _removeObject);
public: // callback function
void onCallbackCtagsSelection();
void onCallbackCtagsCancel();
void onCallbackCtagsListValidate(const std::string& _value);
void onCallbackCtagsListSelect(const std::string& _value);
void onCallbackCtagsListUnSelect();
};
};
#endif
}

View File

@@ -1,24 +1,19 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <appl/debug.h>
#include <appl/global.h>
#include <appl/Gui/TextViewer.h>
#include <appl/BufferManager.h>
#include <ewol/clipBoard.h>
#include <gale/context/clipBoard.h>
#include <ewol/widget/WidgetManager.h>
#include <ewol/widget/Manager.h>
#include <appl/Gui/ViewerManager.h>
#include <ewol/renderer/EObject.h>
#include <ewol/object/Object.h>
#include <appl/TextPluginManager.h>
#undef __class__
#define __class__ "TextViewer"
#include <etk/stdTools.h>
#define tic() \
int64_t startTime = ewol::getTime();
@@ -28,26 +23,22 @@
int64_t processTimeLocal = (endTime - startTime); \
APPL_DEBUG(comment << (float)((float)processTimeLocal / 1000.0) << "ms");
appl::TextViewer::TextViewer(const std::string& _fontName, int32_t _fontSize) :
m_buffer(NULL),
m_displayText(_fontName, _fontSize),
appl::TextViewer::TextViewer() :
propertyFontName(this, "font-name", "FreeMono;DejaVuSansMono;FreeSerif", "Name of the font for the displayed text", &appl::TextViewer::onChangePropertyFontName),
propertyFontSize(this, "font-size", 12, "Size of the font for the displayed text", &appl::TextViewer::onChangePropertyFontSize),
m_insertMode(false) {
addObjectType("appl::TextViewer");
setCanHaveFocus(true);
registerMultiCast(ednMsgBufferId);
registerMultiCast(ednMsgGuiFind);
registerMultiCast(ednMsgGuiReplace);
registerMultiCast(appl::MsgSelectGotoLine);
registerMultiCast(appl::MsgSelectNewFile);
registerMultiCast(appl::MsgSelectGotoLineSelect);
setLimitScrolling(0.2);
setSingleFinger(false);
// load buffer manager:
m_bufferManager = appl::BufferManager::keep();
m_viewerManager = appl::ViewerManager::keep();
m_bufferManager = appl::BufferManager::create();
m_pluginManager = appl::textPluginManager::create();
m_viewerManager = appl::ViewerManager::create();
// load color properties
m_paintingProperties = appl::GlyphPainting::keep("THEME:COLOR:textViewer.json");
m_paintingProperties = appl::GlyphPainting::create("THEME:COLOR:textViewer.json");
// get all id properties ...
m_colorBackground = m_paintingProperties->request("CODE_basicBackgroung");
m_colorSpace = m_paintingProperties->request("CODE_space");
@@ -56,33 +47,120 @@ appl::TextViewer::TextViewer(const std::string& _fontName, int32_t _fontSize) :
m_colorLineNumber = m_paintingProperties->request("CODE_lineNumber");
m_colorSelection = m_paintingProperties->request("SelectedText");
m_colorNormal = m_paintingProperties->request("normal");
appl::textPluginManager::connect(*this);
}
void appl::TextViewer::init() {
ewol::widget::WidgetScrolled::init();
propertyCanFocus.set(true);
m_displayText.setFont(*propertyFontName, *propertyFontSize);
m_pluginManager->connect(*this);
// last created has focus ...
setCurrentSelect();
signalShortcut.connect(sharedFromThis(), &appl::TextViewer::onCallbackShortCut);
/*
registerMultiCast(ednMsgBufferId);
registerMultiCast(ednMsgGuiFind);
registerMultiCast(ednMsgGuiReplace);
registerMultiCast(appl::MsgSelectGotoLine);
registerMultiCast(appl::MsgSelectGotoLineSelect);
*/
if (m_bufferManager != nullptr) {
m_bufferManager->signalSelectFile.connect(sharedFromThis(), &appl::TextViewer::onCallbackselectNewFile);
} else {
APPL_CRITICAL("Buffer manager has not been created at the init");
}
}
appl::TextViewer::~TextViewer(void) {
appl::textPluginManager::disconnect(*this);
appl::GlyphPainting::release(m_paintingProperties);
appl::BufferManager::release(m_bufferManager);
appl::ViewerManager::release(m_viewerManager);
appl::TextViewer::~TextViewer() {
m_pluginManager->disconnect(*this);
}
bool appl::TextViewer::calculateMinSize(void) {
void appl::TextViewer::onCallbackShortCut(const std::string& _value) {
if (m_pluginManager->onReceiveShortCut(*this, _value) == true) {
return;
}
}
void appl::TextViewer::onCallbackselectNewFile(const std::string& _value) {
APPL_INFO("Select new file: " << _value);
if (isSelectedLast() == false) {
return;
}
// reset scroll:
if (m_buffer != nullptr) {
m_buffer->signals.disconnect(sharedFromThis());
bool needAdd = true;
auto it = m_drawingRemenber.begin();
while (it != m_drawingRemenber.end()) {
ememory::SharedPtr<appl::Buffer> tmpBuff = it->first.lock();
if (tmpBuff == nullptr) {
it = m_drawingRemenber.erase(it);
continue;
}
if (tmpBuff == m_buffer) {
it->second = m_originScrooled;
APPL_VERBOSE("store origin : " << m_originScrooled);
needAdd = false;
break;
}
++it;
}
if (needAdd == true) {
m_drawingRemenber.push_back(std::make_pair(ememory::WeakPtr<appl::Buffer>(m_buffer), m_originScrooled));
APPL_VERBOSE("Push origin : " << m_originScrooled);
}
}
m_originScrooled = vec2(0,0);
if (m_bufferManager != nullptr) {
m_buffer = m_bufferManager->get(_value);
m_bufferManager->setBufferSelected(m_buffer);
if (m_buffer != nullptr) {
m_buffer->signalIsModify.connect(sharedFromThis(), &appl::TextViewer::onCallbackIsModify);
m_buffer->signalSelectChange.connect(sharedFromThis(), &appl::TextViewer::onCallbackSelectChange);
for (auto element : m_drawingRemenber) {
if (element.first.lock() == m_buffer) {
m_originScrooled = element.second;
APPL_VERBOSE("retrive origin : " << m_originScrooled);
// TODO : Check if this element is not out of the display text ...
break;
}
}
}
}
markToRedraw();
return;
}
std::string appl::TextViewer::getBufferPath() {
if (m_buffer == nullptr) {
return "";
}
std::string filename = m_buffer->getFileName();
size_t pos = filename.rfind('/');
if (pos == std::string::npos) {
return "";
}
return std::string(filename, 0, pos);
}
bool appl::TextViewer::calculateMinSize() {
m_minSize.setValue(50,50);
return true;
}
void appl::TextViewer::onDraw(void) {
void appl::TextViewer::onDraw() {
m_displayDrawing.draw();
m_displayText.draw();
WidgetScrooled::onDraw();
WidgetScrolled::onDraw();
}
void appl::TextViewer::onRegenerateDisplay(void) {
if (false == needRedraw()) {
void appl::TextViewer::onRegenerateDisplay() {
if (needRedraw() == false) {
return;
}
//tic();
@@ -95,10 +173,11 @@ void appl::TextViewer::onRegenerateDisplay(void) {
m_displayDrawing.setColor((*m_paintingProperties)[m_colorBackground].getForeground());
m_displayDrawing.rectangleWidth(m_size);
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
m_maxSize.setX(256);
m_maxSize.setY(256);
m_displayText.setTextAlignement(10, m_size.x()-20, ewol::Text::alignLeft);
float textEndAlignament = std::max(11.0f, m_size.x()-20.0f);
m_displayText.setTextAlignement(10, textEndAlignament, ewol::compositing::alignLeft);
m_displayText.setRelPos(vec3(10, 0, 0));
std::string tmpString("<br/>\n"
"<font color=\"red\">\n"
@@ -117,21 +196,18 @@ void appl::TextViewer::onRegenerateDisplay(void) {
m_displayText.forceLineReturn();
m_displayText.printDecorated(tmpString);
// call the herited class...
WidgetScrooled::onRegenerateDisplay();
WidgetScrolled::onRegenerateDisplay();
return;
}
// normal displa of the buffer :
vec3 tmpCursorPosition(0, 0, -1);
float tmpCursorLenght = -1.0;
// real display ...
etk::Buffer& buf = m_buffer->getData();
m_displayText.setColor(etk::Color<>(0, 0, 0, 256));
m_displayText.setColor(etk::Color<>(0, 0, 0, 255));
float countNbLine = 1;
int32_t countColomn = 0;
// the siplay string :
std::u32string stringToDisplay;
int64_t bufferElementSize = 0;
bool isSelect = false;
appl::Buffer::Iterator selectPosStart = m_buffer->begin();
appl::Buffer::Iterator selectPosStop = m_buffer->begin();
if (m_buffer->hasTextSelected() == true) {
@@ -146,7 +222,7 @@ void appl::TextViewer::onRegenerateDisplay(void) {
for (startingIt = m_buffer->begin();
(bool)startingIt == true;
++startingIt) {
if (*startingIt == etk::UChar::Return) {
if (*startingIt == u32char::Return) {
++startLineId;
m_displayText.forceLineReturn();
if (m_size.y() >= m_displayText.getPos().y()) {
@@ -191,9 +267,9 @@ void appl::TextViewer::onRegenerateDisplay(void) {
m_displayText.setClipping(vec2(m_lastOffsetDisplay, 0), m_size);
}
appl::DisplayHLData displayLocalSyntax;
m_buffer->hightlightGenerateLines(displayLocalSyntax, (int64_t)startingIt, m_size.y());
m_buffer->hightlightGenerateLines(displayLocalSyntax, startingIt, (m_size.y()/tmpLetterSize.y()) + 5);
float maxSizeX = 0;
appl::HighlightInfo * HLColor = NULL;
appl::HighlightInfo * HLColor = nullptr;
bool DisplayCursorAndSelection = isSelectedLast();
appl::Buffer::Iterator it;
for (it = startingIt;
@@ -206,15 +282,15 @@ void appl::TextViewer::onRegenerateDisplay(void) {
}
//APPL_DEBUG("display element '" << currentValue << "'at pos : " << m_displayText.getPos() );
//APPL_DEBUG(" element size : " << iii << " : " << bufferElementSize);
if (*it == etk::UChar::Return) {
if (*it == u32char::Return) {
countNbLine += 1;
countColomn = 0;
maxSizeX = etk_max(m_displayText.getPos().x(), maxSizeX);
maxSizeX = std::max(m_displayText.getPos().x(), maxSizeX);
// Display the end line position only if we have the focus ...
if (DisplayCursorAndSelection == true) {
if (it >= selectPosStart && it < selectPosStop) {
ewol::Drawing& draw = m_displayText.getDrawing();
draw.setColor(etk::Color<>(0xFF0000FF));
ewol::compositing::Drawing& draw = m_displayText.getDrawing();
draw.setColor(etk::Color<>(0xFF, 0x00, 0x00, 0xFF));
draw.setPos(m_displayText.getPos() + tmpLetterSize/4.0f);
draw.rectangle(m_displayText.getPos() + tmpLetterSize*3.0f/4.0f);
}
@@ -231,8 +307,8 @@ void appl::TextViewer::onRegenerateDisplay(void) {
}
HLColor = m_buffer->getElementColorAtPosition(displayLocalSyntax, (int64_t)it);
bool haveBackground = false;
if ( HLColor != NULL
&& HLColor->patern != NULL) {
if ( HLColor != nullptr
&& HLColor->patern != nullptr) {
m_displayText.setColor(HLColor->patern->getColorGlyph().getForeground());
m_displayText.setColorBg(HLColor->patern->getColorGlyph().getBackground());
haveBackground = HLColor->patern->getColorGlyph().haveBackground();
@@ -245,9 +321,9 @@ void appl::TextViewer::onRegenerateDisplay(void) {
m_displayText.setColor((*m_paintingProperties)[m_colorNormal].getForeground());
}
if (haveBackground == false) {
if (*it == etk::UChar::Space) {
if (*it == u32char::Space) {
m_displayText.setColorBg((*m_paintingProperties)[m_colorSpace].getForeground());
} else if (*it == etk::UChar::Tabulation) {
} else if (*it == u32char::Tabulation) {
m_displayText.setColorBg((*m_paintingProperties)[m_colorTabulation].getForeground());
}
}
@@ -270,7 +346,7 @@ void appl::TextViewer::onRegenerateDisplay(void) {
tmpCursorPosition = m_displayText.getPos();
tmpCursorLenght = 5;
}
maxSizeX = etk_max(m_displayText.getPos().x(), maxSizeX);
maxSizeX = std::max(m_displayText.getPos().x(), maxSizeX);
// Display cursor only if we have the focus ...
if ( tmpCursorPosition.z() != -1
&& getFocus() == true) {
@@ -298,30 +374,30 @@ void appl::TextViewer::onRegenerateDisplay(void) {
}
//toc("Display time : ");
// call the herited class...
WidgetScrooled::onRegenerateDisplay();
WidgetScrolled::onRegenerateDisplay();
}
bool appl::TextViewer::onEventEntry(const ewol::EventEntry& _event) {
if (m_buffer == NULL) {
bool appl::TextViewer::onEventEntry(const ewol::event::Entry& _event) {
if (m_buffer == nullptr) {
return false;
}
// First call plugin
if (appl::textPluginManager::onEventEntry(*this, _event) == true) {
if (m_pluginManager->onEventEntry(*this, _event) == true) {
markToRedraw();
return true;
}
// just forward event == > manage directly in the buffer
if (_event.getType() == ewol::keyEvent::keyboardChar) {
if (_event.getType() == gale::key::keyboard::character) {
//APPL_DEBUG("KB EVENT : \"" << UTF8_data << "\" size=" << strlen(UTF8_data) << "type=" << (int32_t)typeEvent);
if (_event.getStatus() != ewol::keyEvent::statusDown) {
if (_event.getStatus() != gale::key::status::down) {
return false;
}
char32_t localValue = _event.getChar();
if (localValue == etk::UChar::Return) {
if (true == _event.getSpecialKey().isSetShift()) {
localValue = etk::UChar::CarrierReturn;
if (localValue == u32char::Return) {
if (true == _event.getSpecialKey().getShift()) {
localValue = u32char::CarrierReturn;
}
} else if (localValue == etk::UChar::Suppress ) {
} else if (localValue == u32char::Suppress ) {
//APPL_INFO("keyEvent : <suppr> pos=" << m_cursorPos);
if (m_buffer->hasTextSelected()) {
remove();
@@ -332,7 +408,7 @@ bool appl::TextViewer::onEventEntry(const ewol::EventEntry& _event) {
replace("", pos, posEnd);
}
return true;
} else if (localValue == etk::UChar::Delete) {
} else if (localValue == u32char::Delete) {
//APPL_INFO("keyEvent : <del> pos=" << m_cursorPos);
if (m_buffer->hasTextSelected()) {
remove();
@@ -347,9 +423,10 @@ bool appl::TextViewer::onEventEntry(const ewol::EventEntry& _event) {
m_buffer->setSelectMode(false);
// normal adding char ...
char output[5];
int32_t nbElement = etk::getUtf8(localValue, output);
output[0] = '0';
u32char::convertUtf8(localValue, output);
if ( m_buffer->hasTextSelected() == false
&& _event.getSpecialKey().isSetInsert() == true) {
&& _event.getSpecialKey().getInsert() == true) {
appl::Buffer::Iterator pos = m_buffer->cursor();
appl::Buffer::Iterator posEnd = pos;
++posEnd;
@@ -362,45 +439,44 @@ bool appl::TextViewer::onEventEntry(const ewol::EventEntry& _event) {
return true;
}
// move events ...
if (_event.getStatus() == ewol::keyEvent::statusDown) {
bool needUpdatePosition = true;
if (_event.getStatus() == gale::key::status::down) {
// selection when shift is set:
m_buffer->setSelectMode(_event.getSpecialKey().isSetShift());
m_buffer->setSelectMode(_event.getSpecialKey().getShift());
// check selection event ...
switch(_event.getType()) {
case ewol::keyEvent::keyboardInsert:
case gale::key::keyboard::insert:
m_insertMode = m_insertMode==true?false:true;
markToRedraw();
break;
case ewol::keyEvent::keyboardLeft:
case gale::key::keyboard::left:
//APPL_INFO("keyEvent : <LEFT>");
moveCursorLeft();
break;
case ewol::keyEvent::keyboardRight:
case gale::key::keyboard::right:
//APPL_INFO("keyEvent : <RIGHT>");
moveCursorRight();
break;
case ewol::keyEvent::keyboardUp:
case gale::key::keyboard::up:
//APPL_INFO("keyEvent : <UP>");
moveCursorUp(1);
break;
case ewol::keyEvent::keyboardDown:
case gale::key::keyboard::down:
//APPL_INFO("keyEvent : <DOWN>");
moveCursorDown(1);
break;
case ewol::keyEvent::keyboardPageUp:
case gale::key::keyboard::pageUp:
//APPL_INFO("keyEvent : <PAGE-UP>");
moveCursorUp(15); // TODO : Set the real number of line ...
break;
case ewol::keyEvent::keyboardPageDown:
case gale::key::keyboard::pageDown:
//APPL_INFO("keyEvent : <PAGE-DOWN>");
moveCursorDown(15); // TODO : Set the real number of line ...
break;
case ewol::keyEvent::keyboardStart:
case gale::key::keyboard::start:
//APPL_INFO("keyEvent : <Start of line>");
moveCursorLeft(moveEnd);
break;
case ewol::keyEvent::keyboardEnd:
case gale::key::keyboard::end:
//APPL_INFO("keyEvent : <End of line>");
moveCursorRight(moveEnd);
break;
@@ -412,21 +488,22 @@ bool appl::TextViewer::onEventEntry(const ewol::EventEntry& _event) {
return false;
}
bool appl::TextViewer::onEventInput(const ewol::EventInput& _event) {
if (_event.getId() != 0) {
bool appl::TextViewer::onEventInput(const ewol::event::Input& _event) {
if ( _event.getId() != 0
&& _event.getStatus() == gale::key::status::down) {
keepFocus();
}
//tic();
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
return false;
}
// First call the scrolling widget :
if (WidgetScrooled::onEventInput(_event) == true) {
if (ewol::widget::WidgetScrolled::onEventInput(_event) == true) {
markToRedraw();
return true;
}
// Second call plugin
if (appl::textPluginManager::onEventInput(*this, _event) == true) {
if (m_pluginManager->onEventInput(*this, _event) == true) {
markToRedraw();
return true;
}
@@ -441,25 +518,26 @@ bool appl::TextViewer::onEventInput(const ewol::EventInput& _event) {
relativePos.setX(0);
}
if ( _event.getId() == 12
&& _event.getStatus() == ewol::keyEvent::statusSingle) {
APPL_DEBUG("kjhkjhkjh");
&& _event.getStatus() == gale::key::status::pressSingle) {
APPL_TODO("RAT5 SAVE button ==> TODO implement");
// Rat5 save event
sendMultiCast(ednMsgGuiSave, "current");
//sendMultiCast(ednMsgGuiSave, "current");
return true;
}
// just forward event == > manage directly in the buffer
if (_event.getId() == 1) {
// mouse selection :
if (_event.getType() == ewol::keyEvent::typeMouse) {
if (_event.getStatus() == ewol::keyEvent::statusDown) {
//if (_event.getType() == gale::key::typeMouse) {
if (_event.getStatus() == gale::key::status::down) {
//if (_event.getSpecialKey().isSetShift() == false) {
appl::Buffer::Iterator newPos = getMousePosition(relativePos);
m_buffer->setSelectMode(false);
moveCursor(newPos);
m_buffer->setSelectMode(true);
markToRedraw();
return true;
//}
} else if (_event.getStatus() == ewol::keyEvent::statusUp) {
} else if (_event.getStatus() == gale::key::status::up) {
appl::Buffer::Iterator newPos = getMousePosition(relativePos);
moveCursor(newPos);
m_buffer->setSelectMode(false);
@@ -467,52 +545,62 @@ bool appl::TextViewer::onEventInput(const ewol::EventInput& _event) {
std::string value;
m_buffer->copy(value);
if (value.size() != 0) {
ewol::clipBoard::set(ewol::clipBoard::clipboardSelection, value);
gale::context::clipBoard::set(gale::context::clipBoard::clipboardSelection, value);
}
markToRedraw();
return true;
}
}
if (_event.getStatus() == ewol::keyEvent::statusSingle) {
if (_event.getType() == ewol::keyEvent::typeMouse) {
//}
if (_event.getStatus() == gale::key::status::pressSingle) {
if ( _event.getType() == gale::key::type::mouse
|| _event.getType() == gale::key::type::finger) {
appl::Buffer::Iterator newPos = getMousePosition(relativePos);
moveCursor(newPos);
markToRedraw();
return true;
}
} else if (_event.getStatus() == ewol::keyEvent::statusDouble) {
} else if (_event.getStatus() == gale::key::status::pressDouble) {
mouseEventDouble();
// Copy selection :
std::string value;
m_buffer->copy(value);
if (value.size() != 0) {
ewol::clipBoard::set(ewol::clipBoard::clipboardSelection, value);
gale::context::clipBoard::set(gale::context::clipBoard::clipboardSelection, value);
}
markToRedraw();
return true;
} else if (_event.getStatus() == ewol::keyEvent::statusTriple) {
} else if (_event.getStatus() == gale::key::status::pressTriple) {
mouseEventTriple();
// Copy selection :
std::string value;
m_buffer->copy(value);
if (value.size() != 0) {
ewol::clipBoard::set(ewol::clipBoard::clipboardSelection, value);
gale::context::clipBoard::set(gale::context::clipBoard::clipboardSelection, value);
}
markToRedraw();
return true;
} else if (_event.getStatus() == ewol::keyEvent::statusMove) {
} else if (_event.getStatus() == gale::key::status::move) {
if (m_buffer->getSelectMode() == true) {
//int64_t timeStart = ewol::getTime();
appl::Buffer::Iterator newPos = getMousePosition(relativePos);
//int64_t timeMedium1 = ewol::getTime();
moveCursor(newPos);
//int64_t timeMedium2 = ewol::getTime();
markToRedraw();
/*
int64_t timeStop = ewol::getTime();
APPL_DEBUG("Display selection=" << (timeStop-timeStart)/1000.0f << " ms");
APPL_DEBUG(" 1=" << (timeMedium1-timeStart)/1000.0f << " ms");
APPL_DEBUG(" 2=" << (timeMedium2-timeMedium1)/1000.0f << " ms");
*/
return true;
}
}
} else if (2 == _event.getId()) {
if (ewol::keyEvent::statusSingle == _event.getStatus()) {
if (gale::key::status::pressSingle == _event.getStatus()) {
appl::Buffer::Iterator newPos = getMousePosition(relativePos);
moveCursor(newPos);
ewol::clipBoard::request(ewol::clipBoard::clipboardSelection);
gale::context::clipBoard::request(gale::context::clipBoard::clipboardSelection);
markToRedraw();
return true;
}
@@ -521,7 +609,7 @@ bool appl::TextViewer::onEventInput(const ewol::EventInput& _event) {
}
void appl::TextViewer::mouseEventDouble(void) {
void appl::TextViewer::mouseEventDouble() {
//m_selectMode = false;
appl::Buffer::Iterator beginPos, endPos;
if (true == m_buffer->getPosAround(m_buffer->cursor(), beginPos, endPos)) {
@@ -530,12 +618,13 @@ void appl::TextViewer::mouseEventDouble(void) {
}
}
void appl::TextViewer::mouseEventTriple(void) {
void appl::TextViewer::mouseEventTriple() {
//m_selectMode = false;
moveCursor(m_buffer->getEndLine(m_buffer->cursor()));
m_buffer->setSelectionPos(m_buffer->getStartLine(m_buffer->cursor()));
}
// TODO : optimise this with retaine the display position buffer and his position in the real view ...
appl::Buffer::Iterator appl::TextViewer::getMousePosition(const vec2& _relativePos) {
char32_t currentValue;
vec3 positionCurentDisplay(0,0,0);
@@ -549,17 +638,23 @@ appl::Buffer::Iterator appl::TextViewer::getMousePosition(const vec2& _relativeP
(bool)it == true;
++it) {
currentValue = *it;
m_buffer->expand(countColomn, currentValue, stringToDisplay);
for (size_t kkk=0; kkk<stringToDisplay.size(); ++kkk) {
if (stringToDisplay[kkk] == etk::UChar::Return) {
m_displayText.forceLineReturn();
countColomn = 0;
} else {
//note : Without this condithion the time od selection change to 0.6 ms to 8ms ...
if (-_relativePos.y() >= positionCurentDisplay.y()) {
m_displayText.print(stringToDisplay[kkk]);
if (currentValue == u32char::Return) {
m_displayText.forceLineReturn();
countColomn = 0;
} else {
if (-_relativePos.y() >= positionCurentDisplay.y()) {
m_buffer->expand(countColomn, currentValue, stringToDisplay);
for (size_t kkk=0; kkk<stringToDisplay.size(); ++kkk) {
if (stringToDisplay[kkk] == u32char::Return) {
m_displayText.forceLineReturn();
countColomn = 0;
} else {
//note : Without this condithion the time od selection change to 0.6 ms to 8ms ...
//APPL_DEBUG("check : " << -_relativePos.y() << ">=" << positionCurentDisplay.y());
m_displayText.printChar(stringToDisplay[kkk]);
++countColomn;
}
}
++countColomn;
}
}
if (-_relativePos.y() >= positionCurentDisplay.y()) {
@@ -580,125 +675,47 @@ appl::Buffer::Iterator appl::TextViewer::getMousePosition(const vec2& _relativeP
return m_buffer->end();
}
void appl::TextViewer::onEventClipboard(enum ewol::clipBoard::clipboardListe _clipboardID) {
if (m_buffer != NULL) {
std::string data = ewol::clipBoard::get(_clipboardID);
void appl::TextViewer::onEventClipboard(enum gale::context::clipBoard::clipboardListe _clipboardID) {
if (m_buffer != nullptr) {
std::string data = gale::context::clipBoard::get(_clipboardID);
write(data);
}
markToRedraw();
}
void appl::TextViewer::onReceiveMessage(const ewol::EMessage& _msg) {
widget::WidgetScrooled::onReceiveMessage(_msg);
APPL_VERBOSE("receive msg: " << _msg);
// First call plugin
if (appl::textPluginManager::onReceiveMessage(*this, _msg) == true) {
markToRedraw();
return;
}
// event needed even if selection of buffer is not done ...
if (_msg.getMessage() == appl::Buffer::eventIsModify) {
markToRedraw();
return;
}
if (_msg.getMessage() == appl::Buffer::eventSelectChange) {
markToRedraw();
return;
}
// If not the last buffer selected, then no event parsing ...
if (isSelectedLast() == false) {
return;
}
if (_msg.getMessage() == appl::MsgSelectGotoLineSelect) {
if (m_buffer == NULL) {
return;
}
appl::Buffer::Iterator it = m_buffer->countForwardNLines(m_buffer->begin(), std::stoi(_msg.getData()));
select(it, m_buffer->getEndLine(it));
markToRedraw();
return;
}
if (_msg.getMessage() == appl::MsgSelectGotoLine) {
if (m_buffer == NULL) {
return;
}
appl::Buffer::Iterator it = m_buffer->countForwardNLines(m_buffer->begin(), std::stoi(_msg.getData()));
moveCursor(it);
markToRedraw();
return;
}
if (_msg.getMessage() == appl::MsgSelectNewFile) {
// reset scroll:
if (m_buffer != NULL) {
m_buffer->unRegisterOnEvent(this);
bool needAdd = true;
for (size_t iii=0; iii<m_drawingRemenber.size(); ++iii) {
if (m_drawingRemenber[iii].first == m_buffer) {
m_drawingRemenber[iii].second = m_originScrooled;
APPL_VERBOSE("store origin : " << m_originScrooled);
needAdd = false;
break;
}
}
if (needAdd == true) {
m_drawingRemenber.push_back(std::make_pair(m_buffer, m_originScrooled));
APPL_VERBOSE("Push origin : " << m_originScrooled);
}
}
m_originScrooled = vec2(0,0);
if (m_bufferManager != NULL) {
m_buffer = m_bufferManager->get(_msg.getData());
m_bufferManager->setBufferSelected(m_buffer);
if (m_buffer != NULL) {
m_buffer->registerOnEvent(this, appl::Buffer::eventIsModify);
m_buffer->registerOnEvent(this, appl::Buffer::eventSelectChange);
for (auto element : m_drawingRemenber) {
if (element.first == m_buffer) {
m_originScrooled = element.second;
APPL_VERBOSE("retrive origin : " << m_originScrooled);
// TODO : Check if this element is not out of the display text ...
break;
}
}
}
}
markToRedraw();
return;
}
void appl::TextViewer::onCallbackIsModify() {
markToRedraw();
}
void appl::TextViewer::onCallbackSelectChange() {
markToRedraw();
}
void appl::TextViewer::onObjectRemove(ewol::EObject* _removeObject) {
widget::WidgetScrooled::onObjectRemove(_removeObject);
if (m_buffer == _removeObject) {
m_buffer = NULL;
markToRedraw();
}
}
void appl::TextViewer::onGetFocus(void) {
void appl::TextViewer::onGetFocus() {
showKeyboard();
APPL_INFO("Focus - In");
setCurrentSelect();
markToRedraw();
}
void appl::TextViewer::onLostFocus(void) {
void appl::TextViewer::onLostFocus() {
hideKeyboard();
APPL_INFO("Focus - out");
markToRedraw();
}
void appl::TextViewer::setFontSize(int32_t _size) {
m_displayText.setFontSize(_size);
setScrollingSize(_size*3.0*1.46); // 1.46 is a magic number ...
void appl::TextViewer::onChangePropertyFontSize() {
m_displayText.setFontSize(*propertyFontSize);
setScrollingSize(*propertyFontSize*3.0*1.46); // 1.46 is a magic number ...
}
void appl::TextViewer::setFontName(const std::string& _fontName) {
m_displayText.setFontName(_fontName);
void appl::TextViewer::onChangePropertyFontName() {
m_displayText.setFontName(*propertyFontName);
}
void appl::TextViewer::updateScrolling(void) {
if (m_buffer == NULL) {
// TODO : Update process time ==> a little expensive (2->4ms) in end of file
void appl::TextViewer::updateScrolling() {
if (m_buffer == nullptr) {
return;
}
vec2 realCursorPosition(0,0);
@@ -727,11 +744,11 @@ void appl::TextViewer::updateScrolling(void) {
}
bool appl::TextViewer::moveCursor(const appl::Buffer::Iterator& _pos) {
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
return false;
}
markToRedraw();
if (appl::textPluginManager::onCursorMove(*this, _pos) == true) {
if (m_pluginManager->onCursorMove(*this, _pos) == true) {
updateScrolling();
return true;
}
@@ -741,7 +758,7 @@ bool appl::TextViewer::moveCursor(const appl::Buffer::Iterator& _pos) {
}
bool appl::TextViewer::write(const std::string& _data) {
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
return false;
}
if (m_buffer->hasTextSelected() == true) {
@@ -751,39 +768,39 @@ bool appl::TextViewer::write(const std::string& _data) {
}
bool appl::TextViewer::write(const std::string& _data, const appl::Buffer::Iterator& _pos) {
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
return false;
}
markToRedraw();
if (appl::textPluginManager::onWrite(*this, _pos, _data) == true) {
if (m_pluginManager->onWrite(*this, _pos, _data) == true) {
// no call of the move cursor, because pluging might call theses function to copy and cut data...
updateScrolling();
return true;
}
bool ret = m_buffer->write(_data, _pos);
appl::textPluginManager::onCursorMove(*this, m_buffer->cursor());
m_pluginManager->onCursorMove(*this, m_buffer->cursor());
updateScrolling();
return ret;
}
bool appl::TextViewer::replace(const std::string& _data, const appl::Buffer::Iterator& _pos, const appl::Buffer::Iterator& _posEnd) {
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
return false;
}
markToRedraw();
if (appl::textPluginManager::onReplace(*this, _pos, _data, _posEnd) == true) {
if (m_pluginManager->onReplace(*this, _pos, _data, _posEnd) == true) {
// no call of the move cursor, because pluging might call theses function to copy and cut data...
updateScrolling();
return true;
}
bool ret = m_buffer->replace(_data, _pos, _posEnd);
appl::textPluginManager::onCursorMove(*this, m_buffer->cursor());
m_pluginManager->onCursorMove(*this, m_buffer->cursor());
updateScrolling();
return ret;
}
bool appl::TextViewer::replace(const std::string& _data) {
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
return false;
}
if (m_buffer->hasTextSelected() == false) {
@@ -792,8 +809,8 @@ bool appl::TextViewer::replace(const std::string& _data) {
return replace(_data, m_buffer->selectStart(), m_buffer->selectStop());
}
void appl::TextViewer::remove(void) {
if (m_buffer == NULL) {
void appl::TextViewer::remove() {
if (m_buffer == nullptr) {
return;
}
if (m_buffer->hasTextSelected() == false) {
@@ -801,17 +818,17 @@ void appl::TextViewer::remove(void) {
return;
}
markToRedraw();
if (appl::textPluginManager::onRemove(*this, m_buffer->selectStart(), m_buffer->selectStop()) == true) {
if (m_pluginManager->onRemove(*this, m_buffer->selectStart(), m_buffer->selectStop()) == true) {
return;
}
m_buffer->removeSelection();
appl::textPluginManager::onCursorMove(*this, m_buffer->cursor());
m_pluginManager->onCursorMove(*this, m_buffer->cursor());
}
void appl::TextViewer::moveCursorRight(appl::TextViewer::moveMode _mode) {
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
return;
}
markToRedraw();
@@ -834,7 +851,7 @@ void appl::TextViewer::moveCursorRight(appl::TextViewer::moveMode _mode) {
}
void appl::TextViewer::moveCursorLeft(appl::TextViewer::moveMode _mode) {
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
return;
}
markToRedraw();
@@ -857,7 +874,7 @@ void appl::TextViewer::moveCursorLeft(appl::TextViewer::moveMode _mode) {
}
void appl::TextViewer::moveCursorUp(uint32_t _nbLine) {
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
return;
}
markToRedraw();
@@ -883,7 +900,7 @@ void appl::TextViewer::moveCursorUp(uint32_t _nbLine) {
}
void appl::TextViewer::moveCursorDown(uint32_t _nbLine) {
if (m_buffer == NULL) {
if (m_buffer == nullptr) {
return;
}
markToRedraw();
@@ -921,10 +938,10 @@ appl::Buffer::Iterator appl::TextViewer::getPosSize(const appl::Buffer::Iterator
currentValue = *it;
m_buffer->expand(countColomn, currentValue, stringToDisplay);
for (size_t kkk=0; kkk<stringToDisplay.size(); ++kkk) {
if (stringToDisplay[kkk] == etk::UChar::Return) {
if (stringToDisplay[kkk] == u32char::Return) {
return it;
} else {
m_displayText.print(stringToDisplay[kkk]);
m_displayText.printChar(stringToDisplay[kkk]);
}
}
if (m_displayText.getPos().x() >= _distance) {
@@ -950,10 +967,10 @@ float appl::TextViewer::getScreenSize(const appl::Buffer::Iterator& _startLinePo
//APPL_DEBUG("parse : " << currentValue);
m_buffer->expand(countColomn, currentValue, stringToDisplay);
for (size_t kkk=0; kkk<stringToDisplay.size(); ++kkk) {
if (stringToDisplay[kkk] == etk::UChar::Return) {
if (stringToDisplay[kkk] == u32char::Return) {
return m_displayText.getPos().x() + 2; // TODO : Add the +2 for the end of line ...
} else {
m_displayText.print(stringToDisplay[kkk]);
m_displayText.printChar(stringToDisplay[kkk]);
}
}
ret = m_displayText.getPos().x();
@@ -962,15 +979,15 @@ float appl::TextViewer::getScreenSize(const appl::Buffer::Iterator& _startLinePo
return ret;
}
void appl::TextViewer::setCurrentSelect(void) {
if (m_viewerManager != NULL) {
m_viewerManager->setViewerSelected(this, m_buffer);
void appl::TextViewer::setCurrentSelect() {
if (m_viewerManager != nullptr) {
m_viewerManager->setViewerSelected(ememory::dynamicPointerCast<appl::TextViewer>(sharedFromThis()), m_buffer);
}
}
bool appl::TextViewer::isSelectedLast(void) {
if (m_viewerManager != NULL) {
return m_viewerManager->isLastSelected(this);
bool appl::TextViewer::isSelectedLast() {
if (m_viewerManager != nullptr) {
return m_viewerManager->isLastSelected(ememory::dynamicPointerCast<appl::TextViewer>(sharedFromThis()));
}
return false;
}

View File

@@ -1,29 +1,32 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#ifndef __APPL_TEXT_VIEWER_H__
#define __APPL_TEXT_VIEWER_H__
#pragma once
#include <appl/debug.h>
#include <appl/Buffer.h>
#include <appl/globalMsg.h>
#include <ewol/widget/WidgetScrolled.h>
#include <ewol/compositing/Text.h>
#include <ewol/compositing/TextDF.h>
#include <ewol/compositing/Drawing.h>
#include <appl/BufferManager.h>
#include <appl/Gui/ViewerManager.h>
#include <utility>
namespace appl {
class TextViewer : public widget::WidgetScrooled {
class textPluginManager;
class TextViewer;
using TextViewerShared = ememory::SharedPtr<appl::TextViewer>;
using TextViewerWeak = ememory::WeakPtr<appl::TextViewer>;
class TextViewer : public ewol::widget::WidgetScrolled {
private:
appl::GlyphPainting* m_paintingProperties; //!< element painting property
eproperty::Value<std::string> propertyFontName; //!< name of the font to display text.
eproperty::Value<int32_t> propertyFontSize; //!< Size of the font to display text.
ememory::SharedPtr<appl::GlyphPainting> m_paintingProperties; //!< element painting property
int32_t m_colorBackground;
int32_t m_colorSpace;
int32_t m_colorTabulation;
@@ -32,40 +35,42 @@ namespace appl {
int32_t m_colorSelection;
int32_t m_colorNormal;
private:
appl::BufferManager* m_bufferManager; //!< handle on the buffer manager
appl::ViewerManager* m_viewerManager; //!< handle on the buffer manager
ememory::SharedPtr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
ememory::SharedPtr<appl::textPluginManager> m_pluginManager; //!< Plugin manager interface
ememory::SharedPtr<appl::ViewerManager> m_viewerManager; //!< handle on the buffer manager
protected:
TextViewer();
void init();
public:
TextViewer(const std::string& _fontName="", int32_t _fontSize=-1);
virtual ~TextViewer(void);
DECLARE_FACTORY(TextViewer);
virtual ~TextViewer();
private:
appl::Buffer* m_buffer; //!< pointer on the current buffer to display (can be null if the buffer is remover or in state of changing buffer)
ememory::SharedPtr<appl::Buffer> m_buffer; //!< pointer on the current buffer to display (can be null if the buffer is remover or in state of changing buffer)
public:
/**
* @brief Get the buffer property (only for the class : template <typename TYPE> class TextViewerPluginData)
* @return pointer on buffer
*/
appl::Buffer* internalGetBuffer(void) {
ememory::SharedPtr<appl::Buffer> internalGetBuffer() {
return m_buffer;
}
private:
ewol::Text m_displayText; //!< Text display properties.
ewol::Drawing m_displayDrawing; //!< Other diaplay requested.
std::vector<std::pair<appl::Buffer*, vec2>> m_drawingRemenber;
ewol::compositing::Text m_displayText; //!< Text display properties.
ewol::compositing::Drawing m_displayDrawing; //!< Other display requested.
std::vector<std::pair<ememory::WeakPtr<appl::Buffer>, vec2>> m_drawingRemenber;
public:
void setFontSize(int32_t _size);
void setFontName(const std::string& _fontName);
virtual void onChangePropertyFontSize();
virtual void onChangePropertyFontName();
protected: // derived function
virtual void onDraw(void);
virtual void onDraw();
public: // Derived function
virtual bool calculateMinSize(void);
virtual void onRegenerateDisplay(void);
virtual void onReceiveMessage(const ewol::EMessage& _msg);
virtual void onObjectRemove(ewol::EObject* _removeObject);
virtual bool onEventInput(const ewol::EventInput& _event);
virtual bool onEventEntry(const ewol::EventEntry& _event);
virtual void onEventClipboard(enum ewol::clipBoard::clipboardListe _clipboardID);
virtual void onGetFocus(void);
virtual void onLostFocus(void);
virtual bool calculateMinSize();
virtual void onRegenerateDisplay();
virtual bool onEventInput(const ewol::event::Input& _event);
virtual bool onEventEntry(const ewol::event::Entry& _event);
virtual void onEventClipboard(enum gale::context::clipBoard::clipboardListe _clipboardID);
virtual void onGetFocus();
virtual void onLostFocus();
private:
float m_lastOffsetDisplay; //!< Line number ofssed in the display
private:
@@ -75,7 +80,7 @@ namespace appl {
* @brief Update the scrolling position from the cursor position,
* it might be be all time in the display screen.
*/
void updateScrolling(void);
void updateScrolling();
// TODO : Doc : write data on buffer
bool moveCursor(const appl::Buffer::Iterator& _pos);
bool write(const std::string& _data);
@@ -83,17 +88,17 @@ namespace appl {
bool replace(const std::string& _data, const appl::Buffer::Iterator& _pos, const appl::Buffer::Iterator& _posEnd);
bool replace(const std::string& _data);
bool replace(const std::u32string& _data) {
return replace(to_u8string(_data));
return replace(etk::to_string(_data));
}
/**
* @brief Remove selected data ...
*/
void remove(void);
void remove();
/**
* @brief Remove selected data ... (No plugin call)
*/
void removeDirect(void) {
if (m_buffer==NULL) {
void removeDirect() {
if (m_buffer==nullptr) {
return;
}
m_buffer->removeSelection();
@@ -106,7 +111,7 @@ namespace appl {
* @return true of no error occured.
*/
bool copy(std::string& _data) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return false;
}
return m_buffer->copy(_data);
@@ -118,7 +123,7 @@ namespace appl {
* @param[in] _posEnd End position to end replace the data.
*/
void copy(std::string& _data, const appl::Buffer::Iterator& _pos, const appl::Buffer::Iterator& _posEnd) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return;
}
m_buffer->copy(_data, _pos, _posEnd);
@@ -130,7 +135,7 @@ namespace appl {
* @return true if the write is done corectly
*/
bool writeDirect(const std::string& _data, const appl::Buffer::Iterator& _pos) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return false;
}
bool ret = m_buffer->write(_data, _pos);
@@ -145,7 +150,7 @@ namespace appl {
* @return true if the write is done corectly
*/
bool replaceDirect(const std::string& _data, const appl::Buffer::Iterator& _pos, const appl::Buffer::Iterator& _posEnd) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return false;
}
bool ret = m_buffer->replace(_data, _pos, _posEnd);
@@ -154,8 +159,8 @@ namespace appl {
}
appl::Buffer::Iterator getMousePosition(const vec2& _relativePos);
void mouseEventDouble(void);
void mouseEventTriple(void);
void mouseEventDouble();
void mouseEventTriple();
private:
enum moveMode {
moveLetter,
@@ -189,26 +194,31 @@ namespace appl {
/**
* @brief Set the current buffer selected
*/
void setCurrentSelect(void);
void setCurrentSelect();
/**
* @brief Check if the current buffer is last selected
* @return true if selected last
*/
bool isSelectedLast(void);
bool isSelectedLast();
public:
/**
* @brief get the path of the current buffer
* @return Path of the buffer (remove the ended name)
*/
virtual std::string getBufferPath();
/**
* @brief Check if the buffer is availlable
* @return true if a display buffer is present, false otherwise.
*/
virtual bool hasBuffer(void) {
return m_buffer != NULL;
virtual bool hasBuffer() {
return m_buffer != nullptr;
}
/**
* @brief Get the status of selection.
* @return true if we have a current selection, false otherwise.
*/
virtual bool hasTextSelected(void) {
if (m_buffer==NULL) {
virtual bool hasTextSelected() {
if (m_buffer==nullptr) {
return false;
}
return m_buffer->hasTextSelected();
@@ -216,8 +226,8 @@ namespace appl {
/**
* @brief Remove Selection of the buffer.
*/
virtual void unSelect(void) {
if (m_buffer==NULL) {
virtual void unSelect() {
if (m_buffer==nullptr) {
return;
}
m_buffer->unSelect();
@@ -228,7 +238,7 @@ namespace appl {
* @param[in] _stop Stop position of the selection (the curor is set at this position)
*/
virtual void select(const appl::Buffer::Iterator& _start, const appl::Buffer::Iterator& _stop) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return;
}
moveCursor(_stop);
@@ -248,7 +258,7 @@ namespace appl {
appl::Buffer::Iterator& _resultStart,
appl::Buffer::Iterator& _resultStop,
bool _caseSensitive = true) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return false;
}
bool ret = m_buffer->search(_pos, _search, _resultStart, _caseSensitive);
@@ -271,7 +281,7 @@ namespace appl {
appl::Buffer::Iterator& _resultStart,
appl::Buffer::Iterator& _resultStop,
bool _caseSensitive = true) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return false;
}
bool ret = m_buffer->searchBack(_pos, _search, _resultStart, _caseSensitive);
@@ -290,7 +300,7 @@ namespace appl {
bool getPosAround(const appl::Buffer::Iterator& _pos,
appl::Buffer::Iterator &_beginPos,
appl::Buffer::Iterator &_endPos) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return false;
}
return m_buffer->getPosAround(_pos, _beginPos, _endPos);
@@ -301,7 +311,7 @@ namespace appl {
* @return The Iterator
*/
appl::Buffer::Iterator position(int64_t _pos) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->position(_pos);
@@ -310,8 +320,8 @@ namespace appl {
* @brief Get the cursor position.
* @return The iterator on the cursor position
*/
appl::Buffer::Iterator cursor(void) {
if (m_buffer==NULL) {
appl::Buffer::Iterator cursor() {
if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->cursor();
@@ -320,8 +330,8 @@ namespace appl {
* @brief Get the begin position.
* @return The iterator on the begin position
*/
appl::Buffer::Iterator begin(void) {
if (m_buffer==NULL) {
appl::Buffer::Iterator begin() {
if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->begin();
@@ -330,8 +340,8 @@ namespace appl {
* @brief Get the end position.
* @return The iterator on the end position
*/
appl::Buffer::Iterator end(void) {
if (m_buffer==NULL) {
appl::Buffer::Iterator end() {
if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->end();
@@ -340,8 +350,8 @@ namespace appl {
* @brief Get an Iterator on the start selection.
* @return The Iterator
*/
appl::Buffer::Iterator selectStart(void) {
if (m_buffer==NULL) {
appl::Buffer::Iterator selectStart() {
if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->selectStart();
@@ -350,8 +360,8 @@ namespace appl {
* @brief Get an Iterator on the stop selection.
* @return The Iterator
*/
appl::Buffer::Iterator selectStop(void) {
if (m_buffer==NULL) {
appl::Buffer::Iterator selectStop() {
if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->selectStop();
@@ -362,7 +372,7 @@ namespace appl {
* @return The position in the buffer of the start of the line.
*/
appl::Buffer::Iterator getStartLine(const appl::Buffer::Iterator& _pos) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->getStartLine(_pos);
@@ -373,7 +383,7 @@ namespace appl {
* @return The position in the buffer of the end of the line.
*/
appl::Buffer::Iterator getEndLine(const appl::Buffer::Iterator& _pos) {
if (m_buffer==NULL) {
if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->getEndLine(_pos);
@@ -382,23 +392,31 @@ namespace appl {
* @brief Register of the arrival of a Multicast message
* @param[in] _messageId Event Id waiting for...
*/
// TODO : Remove
void ext_registerMultiCast(const char* const _messageId) {
registerMultiCast(_messageId);
//registerMultiCast(_messageId);
}
/**
* @brief add a specific shortcut with his description
* @param[in] _descriptiveString Description string of the shortcut
* @param[in] _generateEventId Event generic of the element
* @param[in] _data Associate data wit the event
* @param[in] _generateEventName Event generic of the element
*/
virtual void ext_shortCutAdd(const char * _descriptiveString,
const char * _generateEventId,
std::string _data="",
bool _broadcast=false) {
shortCutAdd(_descriptiveString, _generateEventId, _data, _broadcast);
virtual void ext_shortCutAdd(const std::string& _descriptiveString,
const std::string& _generateEventName) {
shortCutAdd(_descriptiveString, _generateEventName);
}
/**
* @brief Remove a specific shortcut with his event name
* @param[in] _generateEventName Event of the element shortcut
*/
virtual void ext_shortCutRm(const std::string& _generateEventName) {
shortCutRemove(_generateEventName);
}
private: // callback fundtions
void onCallbackIsModify();
void onCallbackShortCut(const std::string& _value);
void onCallbackSelectChange();
void onCallbackselectNewFile(const std::string& _value);
};
};
#endif
}

View File

@@ -1,77 +1,40 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <appl/debug.h>
#include <appl/global.h>
#include <appl/Gui/ViewerManager.h>
#include <appl/Gui/TextViewer.h>
#include <ewol/renderer/EObject.h>
#include <ewol/renderer/EObjectManager.h>
#include <ewol/object/Object.h>
#include <ewol/object/Manager.h>
#include <gale/resource/Manager.h>
#undef __class__
#define __class__ "ViewerManager"
appl::ViewerManager::ViewerManager(void) :
ewol::Resource("???ViewerManager???"),
m_viewer(NULL) {
appl::ViewerManager::ViewerManager() {
addObjectType("appl::ViewerManager");
// load buffer manager:
m_bufferManager = appl::BufferManager::keep();
m_bufferManager = appl::BufferManager::create();
}
appl::ViewerManager::~ViewerManager(void) {
appl::BufferManager::release(m_bufferManager);
appl::ViewerManager::~ViewerManager() {
}
void appl::ViewerManager::setViewerSelected(appl::TextViewer* _viewer, appl::Buffer* _buffer) {
if (m_viewer == _viewer) {
ememory::SharedPtr<appl::TextViewer> appl::ViewerManager::getViewerSelected() {
return m_viewer.lock();
}
bool appl::ViewerManager::isLastSelected(const ememory::SharedPtr<appl::TextViewer>& _viewer) {
return m_viewer.lock() == _viewer;
}
void appl::ViewerManager::setViewerSelected(const ememory::SharedPtr<appl::TextViewer>& _viewer, const ememory::SharedPtr<appl::Buffer>& _buffer) {
if (m_viewer.lock() == _viewer) {
return;
}
m_viewer = _viewer;
if (m_bufferManager != NULL) {
m_bufferManager->setBufferSelected(_buffer);
if (m_bufferManager != nullptr) {
//m_bufferManager->setBufferSelected(_buffer);
}
}
void appl::ViewerManager::onReceiveMessage(const ewol::EMessage& _msg) {
APPL_DEBUG("receive message !!! " << _msg);
}
void appl::ViewerManager::onObjectRemove(ewol::EObject* _removeObject) {
ewol::Resource:: onObjectRemove(_removeObject);
if (_removeObject == m_viewer) {
m_viewer = NULL;
return;
}
}
appl::ViewerManager* appl::ViewerManager::keep(void) {
//EWOL_INFO("KEEP : appl::GlyphPainting : file : \"" << _filename << "\"");
appl::ViewerManager* object = static_cast<appl::ViewerManager*>(getManager().localKeep("???ViewerManager???"));
if (NULL != object) {
return object;
}
// this element create a new one every time ....
EWOL_INFO("CREATE : appl::ViewerManager: ???ViewerManager???");
object = new appl::ViewerManager();
if (NULL == object) {
EWOL_ERROR("allocation error of a resource : ???ViewerManager???");
return NULL;
}
getManager().localAdd(object);
return object;
}
void appl::ViewerManager::release(appl::ViewerManager*& _object) {
if (NULL == _object) {
return;
}
ewol::Resource* object2 = static_cast<ewol::Resource*>(_object);
getManager().release(object2);
_object = NULL;
}

View File

@@ -1,68 +1,45 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#ifndef __VIEWER_MANAGER_H__
#define __VIEWER_MANAGER_H__
#pragma once
#include <appl/Buffer.h>
#include <appl/globalMsg.h>
#include <ewol/widget/Widget.h>
#include <ewol/resources/Resource.h>
#include <gale/resource/Resource.h>
#include <appl/BufferManager.h>
namespace appl {
class TextViewer;
class ViewerManager : public ewol::Resource {
class ViewerManager;
using ViewerManagerShared = ememory::SharedPtr<appl::ViewerManager>;
using ViewerManagerWeak = ememory::WeakPtr<appl::ViewerManager>;
class ViewerManager : public ewol::Object {
protected:
ViewerManager(void);
~ViewerManager(void);
ViewerManager();
public:
DECLARE_SINGLE_FACTORY(ViewerManager, "???ViewerManager???");
virtual ~ViewerManager();
private:
appl::BufferManager* m_bufferManager; //!< handle on the buffer manager
appl::TextViewer* m_viewer;
ememory::SharedPtr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
ememory::WeakPtr<appl::TextViewer> m_viewer;
public:
/**
* @brief Set the current buffer selected
* @param[in] _viewer Pointer on the viewer selected
*/
void setViewerSelected(appl::TextViewer* _viewer, appl::Buffer* _buffer);
void setViewerSelected(const ememory::SharedPtr<appl::TextViewer>& _viewer, const ememory::SharedPtr<appl::Buffer>& _buffer);
/**
* @brief Get the current buffer selected
* @return Pointer on the buffer selected
*/
appl::TextViewer* getViewerSelected(void) {
return m_viewer;
};
ememory::SharedPtr<appl::TextViewer> getViewerSelected();
/**
* @breif Check if the element is the last request selection
* @param[in] _viewer element selected.
* @return true if the element is selected
*/
bool isLastSelected(appl::TextViewer* _viewer) {
return m_viewer == _viewer;
};
public: // herited function
void onReceiveMessage(const ewol::EMessage& _msg);
void onObjectRemove(ewol::EObject* _removeObject);
public: // resource manager
/**
* @brief keep the resource pointer.
* @note Never free this pointer by your own...
* @param[in] _filename Name of the configuration file.
* @return pointer on the resource or NULL if an error occured.
*/
static appl::ViewerManager* keep(void);
/**
* @brief release the keeped resources
* @param[in,out] reference on the object pointer
*/
static void release(appl::ViewerManager*& _object);
bool isLastSelected(const ememory::SharedPtr<appl::TextViewer>& _viewer);
};
};
#endif
}

View File

@@ -1,94 +1,77 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#include <ewol/renderer/eContext.h>
#include <ewol/context/Context.h>
#include <appl/debug.h>
#include <appl/Gui/WorkerCloseAllFile.h>
#undef __class__
#define __class__ "WorkerCloseAllFile"
static const char* s_closeDone = "close-done";
appl::WorkerCloseAllFile::WorkerCloseAllFile(void) :
m_worker(NULL),
m_bufferManager(NULL) {
appl::WorkerCloseAllFile::WorkerCloseAllFile() {
addObjectType("appl::WorkerCloseAllFile");
// load buffer manager:
m_bufferManager = appl::BufferManager::keep();
if (m_bufferManager == NULL) {
m_bufferManager = appl::BufferManager::create();
}
void appl::WorkerCloseAllFile::init() {
ewol::object::Worker::init();
if (m_bufferManager == nullptr) {
APPL_ERROR("can not call unexistant buffer manager ... ");
autoDestroy();
destroy();
return;
}
// List all current open file :
for (int64_t iii=m_bufferManager->size()-1; iii>=0; --iii) {
appl::Buffer* tmpBuffer = m_bufferManager->get(iii);
if (tmpBuffer == NULL) {
ememory::SharedPtr<appl::Buffer> tmpBuffer = m_bufferManager->get(iii);
if (tmpBuffer == nullptr) {
continue;
}
if (tmpBuffer->isModify() == false) {
tmpBuffer->removeObject();
APPL_TODO("destroy object");
tmpBuffer->destroy();
continue;
}
m_bufferNameList.push_back(tmpBuffer->getFileName());
}
// checkif an element has something to do in the queue
if (m_bufferNameList.size() == 0) {
autoDestroy();
destroy();
return;
}
// create the worker :
m_worker = new appl::WorkerCloseFile(m_bufferNameList.front());
m_worker = appl::WorkerCloseFile::create();
m_worker->signalCloseDone.connect(sharedFromThis(), &appl::WorkerCloseAllFile::onCallbackCloseDone);
m_worker->startAction(m_bufferNameList.front());
// remove first element :
m_bufferNameList.erase(m_bufferNameList.begin());
if (m_bufferNameList.size() == 0) {
autoDestroy();
destroy();
return;
}
m_worker->registerOnEvent(this, appl::WorkerCloseFile::eventCloseDone, s_closeDone);
}
appl::WorkerCloseAllFile::~WorkerCloseAllFile(void) {
appl::BufferManager::release(m_bufferManager);
appl::WorkerCloseAllFile::~WorkerCloseAllFile() {
APPL_ERROR("Remove Worker");
}
void appl::WorkerCloseAllFile::onReceiveMessage(const ewol::EMessage& _msg) {
if (m_bufferManager == NULL) {
void appl::WorkerCloseAllFile::onCallbackCloseDone() {
if (m_bufferManager == nullptr) {
// nothing to do in this case ==> can do nothing ...
return;
}
if (_msg.getMessage() == s_closeDone) {
if (m_bufferNameList.size() == 0) {
autoDestroy();
return;
}
// create the worker :
m_worker = new appl::WorkerCloseFile(m_bufferNameList.front());
// remove first element :
m_bufferNameList.erase(m_bufferNameList.begin());
if (m_bufferNameList.size() == 0) {
autoDestroy();
return;
}
m_worker->registerOnEvent(this, appl::WorkerCloseFile::eventCloseDone, s_closeDone);
}
}
void appl::WorkerCloseAllFile::onObjectRemove(ewol::EObject* _removeObject) {
if (_removeObject == m_worker) {
m_worker = NULL;
APPL_VERBOSE("AutoRemove After saving sub widget ...");
autoDestroy();
} else if (_removeObject == m_bufferManager) {
m_bufferManager = NULL;
autoDestroy();
if (m_bufferNameList.size() == 0) {
destroy();
return;
}
// create the worker :
m_worker = appl::WorkerCloseFile::create();
m_worker->signalCloseDone.connect(sharedFromThis(), &appl::WorkerCloseAllFile::onCallbackCloseDone);
m_worker->startAction(m_bufferNameList.front());
// remove first element :
m_bufferNameList.erase(m_bufferNameList.begin());
if (m_bufferNameList.size() == 0) {
destroy();
return;
}
}

View File

@@ -1,31 +1,26 @@
/**
/** @file
* @author Edouard DUPIN
*
* @copyright 2010, Edouard DUPIN, all right reserved
*
* @license GPL v3 (see license file)
*/
#ifndef __WORKER_CLOSE_ALL_FILE_H__
#define __WORKER_CLOSE_ALL_FILE_H__
#pragma once
#include <ewol/object/Worker.h>
#include <appl/BufferManager.h>
#include <appl/Gui/WorkerCloseFile.h>
namespace appl {
class WorkerCloseAllFile : public ewol::EObject {
class WorkerCloseAllFile : public ewol::object::Worker {
protected:
WorkerCloseAllFile();
void init();
public:
WorkerCloseAllFile(void);
virtual ~WorkerCloseAllFile(void);
DECLARE_FACTORY(WorkerCloseAllFile);
virtual ~WorkerCloseAllFile();
private:
std::vector<std::string> m_bufferNameList;
appl::WorkerCloseFile* m_worker; //! pop-up element that is open...
appl::BufferManager* m_bufferManager; //!< handle on the buffer manager
public: // derived function
virtual void onReceiveMessage(const ewol::EMessage& _msg);
virtual void onObjectRemove(ewol::EObject * _removeObject);
ememory::SharedPtr<appl::WorkerCloseFile> m_worker; //! pop-up element that is open...
ememory::SharedPtr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
public: // callback function
void onCallbackCloseDone();
};
};
#endif
}

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