1
0
mirror of https://github.com/ManyakRus/image_packages.git synced 2025-11-06 09:29:09 +02:00

сделал CreateLinkXGML_blue()

This commit is contained in:
Nikitin Aleksandr
2023-08-10 18:11:41 +03:00
parent 086ece52a9
commit 00cfced2af
8 changed files with 652 additions and 675 deletions

View File

@@ -49,6 +49,10 @@ func CurrentDirectory() string {
// FillFlags - заполняет параметры из командной строки
func FillFlags() {
Args := os.Args[1:]
if len(Args) != 2 {
return
}
if len(Args) > 0 {
Settings.DIRECTORY_SOURCE = Args[0]
}

View File

@@ -4,6 +4,7 @@ import (
"bytes"
"github.com/ManyakRus/image_packages/internal/config"
"github.com/ManyakRus/image_packages/internal/packages_folder"
"github.com/ManyakRus/image_packages/internal/parse_go"
"github.com/ManyakRus/image_packages/pkg/xgml"
"github.com/ManyakRus/starter/folders"
"github.com/ManyakRus/starter/log"
@@ -39,6 +40,10 @@ func StartFillAll(FileName string) {
log.Info("Start fill links")
FillLinks(ElementGraph)
//заполним связи горутин
log.Info("Start fill goroutine links")
FillLinks_goroutine(ElementGraph)
log.Info("Start save file")
DocXML.IndentTabs()
err := DocXML.WriteToFile(FileName)
@@ -63,6 +68,44 @@ func FillLinks(ElementGraph *etree.Element) {
}
}
// FillLinks_goroutine - заполняет связи (стрелки) между пакетами для горутин go, синим цветом
func FillLinks_goroutine(ElementGraph *etree.Element) {
for PackageFrom, ElementFrom := range MapPackagesElements {
for _, Filename1 := range PackageFrom.GoFiles {
AstFile, err := parse_go.ParseFile(Filename1)
if err != nil {
log.Warn("ParseFile() ", Filename1, " error: ", err)
continue
}
MassGoImport := parse_go.FindGo(AstFile)
for _, GoImport1 := range MassGoImport {
//Go_package_name := GoImport1.Go_package_name
Go_package_import := GoImport1.Go_package_import
Go_func_name := GoImport1.Go_func_name
ElementImport, ok := MapPackageIDElements[Go_package_import]
if ok == false {
//посторонние импорты
//continue
ElementImport = ElementFrom
}
label := Go_func_name
xgml.CreateLinkXGML_blue(ElementGraph, ElementFrom.Index(), ElementImport.Index(), label)
}
//ElementImport, ok := MapPackageIDElements[PackageImport.ID]
//if ok == false {
// //посторонние импорты
// //log.Panic("MapPackagesElements[PackageImport] error: ok =false")
// continue
//}
//xgml.CreateLinkXGML(ElementGraph, ElementFrom.Index(), ElementImport.Index())
}
}
}
func FillFolder(ElementGraph, ElementGroup *etree.Element, Folder *folders.Folder) {
FolderName := Folder.Name

View File

@@ -3,11 +3,16 @@ package main
import (
"github.com/ManyakRus/image_packages/internal/config"
"github.com/ManyakRus/image_packages/internal/logic"
"github.com/ManyakRus/image_packages/internal/parse_go"
ConfigMain "github.com/ManyakRus/starter/config"
"github.com/ManyakRus/starter/log"
)
func main() {
StartApp()
}
func StartApp() {
ConfigMain.LoadEnv()
config.FillSettings()
config.FillFlags()
@@ -17,6 +22,7 @@ func main() {
log.Info("file xgml: ", FileName)
logic.StartFillAll(FileName)
//go parse_go.ParseDir("") //удалить
//go print("1")
go parse_go.ParseDir("") //удалить
go print("1")
}

9
internal/main_test.go Normal file
View File

@@ -0,0 +1,9 @@
package main
import (
"testing"
)
func TestStartApp(t *testing.T) {
StartApp()
}

248
internal/packages.xgml Normal file
View File

@@ -0,0 +1,248 @@
<?xml version="1.0" encoding="UTF-8"?>
<section name="xgml">
<section name="graph">
<attribute key="hierarchic" type="int">1</attribute>
<section name="node">
<attribute key="id" type="int">1</attribute>
<attribute key="label" type="string">internal (2 func, 28 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">280</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">internal (2 func, 28 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
</section>
<section name="node">
<attribute key="id" type="int">2</attribute>
<attribute key="label" type="string">main</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">64</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">main</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">3</attribute>
<attribute key="label" type="string">config (3 func, 62 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">260</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">config (3 func, 62 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">4</attribute>
<attribute key="label" type="string">config</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">80</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">config</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">3</attribute>
</section>
<section name="node">
<attribute key="id" type="int">5</attribute>
<attribute key="label" type="string">logic (9 func, 263 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">260</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">logic (9 func, 263 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">6</attribute>
<attribute key="label" type="string">logic</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">72</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">logic</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">5</attribute>
</section>
<section name="node">
<attribute key="id" type="int">7</attribute>
<attribute key="label" type="string">packages_folder (3 func, 85 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">350</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">packages_folder (3 func, 85 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">8</attribute>
<attribute key="label" type="string">packages_folder</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">152</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">packages_folder</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">7</attribute>
</section>
<section name="node">
<attribute key="id" type="int">9</attribute>
<attribute key="label" type="string">parse_go (6 func, 160 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">290</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">parse_go (6 func, 160 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">10</attribute>
<attribute key="label" type="string">parse_go</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">96</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">parse_go</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">9</attribute>
</section>
<section name="edge">
<attribute key="source" type="int">2</attribute>
<attribute key="target" type="int">4</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">2</attribute>
<attribute key="target" type="int">6</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">2</attribute>
<attribute key="target" type="int">10</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">6</attribute>
<attribute key="target" type="int">10</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">6</attribute>
<attribute key="target" type="int">4</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">6</attribute>
<attribute key="target" type="int">8</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
</section>
</section>

View File

@@ -11,9 +11,9 @@ import (
// GoImport - содержит информацию о вызове горутины go
type GoImport struct {
go_package_name string //псевдоним импорта вызываемой функции из другого пакета
go_package_import string //полный путь импорта вызываемой функции из другого пакета
go_func_name string //имя вызываемой функции
Go_package_name string //псевдоним импорта вызываемой функции из другого пакета
Go_package_import string //полный путь импорта вызываемой функции из другого пакета
Go_func_name string //имя вызываемой функции
}
// ParseDir - парсит все файлы .go, кроме тсетов
@@ -68,6 +68,7 @@ func ParseFile(Filename string) (*ast.File, error) {
return AstFIle, err
}
// FindGo - находит массив команд go (горутины)
func FindGo(AstFile *ast.File) []GoImport {
Otvet := make([]GoImport, 0)
@@ -91,9 +92,9 @@ func FindGo(AstFile *ast.File) []GoImport {
GoStmt1 := list1.(*ast.GoStmt)
go_package_name, go_package_import, go_func_name := FindGoValues(AstFile, GoStmt1)
GoImport1 := GoImport{}
GoImport1.go_package_name = go_package_name
GoImport1.go_package_import = go_package_import
GoImport1.go_func_name = go_func_name
GoImport1.Go_package_name = go_package_name
GoImport1.Go_package_import = go_package_import
GoImport1.Go_func_name = go_func_name
Otvet = append(Otvet, GoImport1)
}
}

View File

@@ -1,495 +1,426 @@
<?xml version="1.0" encoding="UTF-8"?>
<section name="xgml">
<attribute key="Creator" type="String">yFiles</attribute>
<attribute key="Version" type="String">2.18</attribute>
<section name="graph">
<attribute key="hierarchic" type="int">1</attribute>
<attribute key="label" type="String"></attribute>
<attribute key="directed" type="int">1</attribute>
<section name="node">
<attribute key="id" type="int">0</attribute>
<attribute key="label" type="String">image_packages</attribute>
<section name="graphics">
<attribute key="x" type="double">216.0</attribute>
<attribute key="y" type="double">-184.9610615079365</attribute>
<attribute key="w" type="double">466.0</attribute>
<attribute key="h" type="double">369.922123015873</attribute>
<attribute key="type" type="String">roundrectangle</attribute>
<attribute key="fill" type="String">#F5F5F5</attribute>
<attribute key="outline" type="String">#F5F5F5</attribute>
<attribute key="topBorderInset" type="double">0.0</attribute>
<attribute key="bottomBorderInset" type="double">0.0</attribute>
<attribute key="leftBorderInset" type="double">0.0</attribute>
<attribute key="rightBorderInset" type="double">0.0</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">image_packages</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="model" type="String">sandwich</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0.0</attribute>
</section>
<attribute key="isGroup" type="boolean">true</attribute>
</section>
<section name="node">
<attribute key="id" type="int">1</attribute>
<attribute key="label" type="String">cmd</attribute>
<attribute key="label" type="string">.</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="x" type="double">45.0</attribute>
<attribute key="y" type="double">-21.0</attribute>
<attribute key="w" type="double">40.0</attribute>
<attribute key="h" type="double">12.0</attribute>
<attribute key="type" type="String">roundrectangle</attribute>
<attribute key="fill" type="String">#F5F5F5</attribute>
<attribute key="outline" type="String">#F5F5F5</attribute>
<attribute key="topBorderInset" type="double">0.0</attribute>
<attribute key="bottomBorderInset" type="double">0.0</attribute>
<attribute key="leftBorderInset" type="double">0.0</attribute>
<attribute key="rightBorderInset" type="double">0.0</attribute>
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">20</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">.</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
</section>
<section name="node">
<attribute key="id" type="int">2</attribute>
<attribute key="label" type="string">cmd</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">40</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">cmd</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="model" type="String">sandwich</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0.0</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="isGroup" type="boolean">true</attribute>
<attribute key="gid" type="int">0</attribute>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">2</attribute>
<attribute key="label" type="String">examples</attribute>
<attribute key="id" type="int">3</attribute>
<attribute key="label" type="string">examples</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="x" type="double">45.0</attribute>
<attribute key="y" type="double">-78.64087301587301</attribute>
<attribute key="w" type="double">90.0</attribute>
<attribute key="h" type="double">12.0</attribute>
<attribute key="type" type="String">roundrectangle</attribute>
<attribute key="fill" type="String">#F5F5F5</attribute>
<attribute key="outline" type="String">#F5F5F5</attribute>
<attribute key="topBorderInset" type="double">0.0</attribute>
<attribute key="bottomBorderInset" type="double">0.0</attribute>
<attribute key="leftBorderInset" type="double">0.0</attribute>
<attribute key="rightBorderInset" type="double">0.0</attribute>
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">90</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">examples</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="model" type="String">sandwich</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0.0</attribute>
</section>
<attribute key="isGroup" type="boolean">true</attribute>
<attribute key="gid" type="int">0</attribute>
</section>
<section name="node">
<attribute key="id" type="int">3</attribute>
<attribute key="label" type="String">internal (1 func, 20 lines)</attribute>
<section name="graphics">
<attribute key="x" type="double">216.0</attribute>
<attribute key="y" type="double">-245.461185515873</attribute>
<attribute key="w" type="double">436.0</attribute>
<attribute key="h" type="double">187.640625</attribute>
<attribute key="type" type="String">roundrectangle</attribute>
<attribute key="fill" type="String">#F5F5F5</attribute>
<attribute key="outline" type="String">#F5F5F5</attribute>
<attribute key="topBorderInset" type="double">0.0</attribute>
<attribute key="bottomBorderInset" type="double">0.0</attribute>
<attribute key="leftBorderInset" type="double">0.0</attribute>
<attribute key="rightBorderInset" type="double">0.0</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">internal (1 func, 20 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0.0</attribute>
</section>
<attribute key="isGroup" type="boolean">true</attribute>
<attribute key="gid" type="int">0</attribute>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">4</attribute>
<attribute key="label" type="String">main</attribute>
<attribute key="label" type="string">internal (2 func, 28 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="x" type="double">45.0</attribute>
<attribute key="y" type="double">-280.640873015873</attribute>
<attribute key="w" type="double">64.0</attribute>
<attribute key="h" type="double">26.0</attribute>
<attribute key="type" type="String">rectangle</attribute>
<attribute key="fill" type="String">#FFFFFF</attribute>
<attribute key="outline" type="String">#000000</attribute>
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">280</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">internal (2 func, 28 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">5</attribute>
<attribute key="label" type="string">main</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">64</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">main</attribute>
<attribute key="fontSize" type="int">16</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="anchor" type="String">c</attribute>
</section>
<attribute key="gid" type="int">3</attribute>
</section>
<section name="node">
<attribute key="id" type="int">5</attribute>
<attribute key="label" type="String">config (3 func, 58 lines)</attribute>
<section name="graphics">
<attribute key="x" type="double">328.0</attribute>
<attribute key="y" type="double">-280.640873015873</attribute>
<attribute key="w" type="double">110.0</attribute>
<attribute key="h" type="double">56.0</attribute>
<attribute key="type" type="String">roundrectangle</attribute>
<attribute key="fill" type="String">#F5F5F5</attribute>
<attribute key="outline" type="String">#F5F5F5</attribute>
<attribute key="topBorderInset" type="double">0.0</attribute>
<attribute key="bottomBorderInset" type="double">0.0</attribute>
<attribute key="leftBorderInset" type="double">0.0</attribute>
<attribute key="rightBorderInset" type="double">0.0</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">config (3 func, 58 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="model" type="String">sandwich</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0.0</attribute>
</section>
<attribute key="isGroup" type="boolean">true</attribute>
<attribute key="gid" type="int">3</attribute>
<attribute key="gid" type="int">4</attribute>
</section>
<section name="node">
<attribute key="id" type="int">6</attribute>
<attribute key="label" type="String">config</attribute>
<attribute key="label" type="string">config (3 func, 62 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="x" type="double">328.0</attribute>
<attribute key="y" type="double">-280.640873015873</attribute>
<attribute key="w" type="double">80.0</attribute>
<attribute key="h" type="double">26.0</attribute>
<attribute key="type" type="String">rectangle</attribute>
<attribute key="fill" type="String">#FFFFFF</attribute>
<attribute key="outline" type="String">#000000</attribute>
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">260</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">config (3 func, 62 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">4</attribute>
</section>
<section name="node">
<attribute key="id" type="int">7</attribute>
<attribute key="label" type="string">config</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">80</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">config</attribute>
<attribute key="fontSize" type="int">16</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="anchor" type="String">c</attribute>
</section>
<attribute key="gid" type="int">5</attribute>
</section>
<section name="node">
<attribute key="id" type="int">7</attribute>
<attribute key="label" type="String">logic (8 func, 219 lines)</attribute>
<section name="graphics">
<attribute key="x" type="double">156.0</attribute>
<attribute key="y" type="double">-194.640873015873</attribute>
<attribute key="w" type="double">102.0</attribute>
<attribute key="h" type="double">56.0</attribute>
<attribute key="type" type="String">roundrectangle</attribute>
<attribute key="fill" type="String">#F5F5F5</attribute>
<attribute key="outline" type="String">#F5F5F5</attribute>
<attribute key="topBorderInset" type="double">0.0</attribute>
<attribute key="bottomBorderInset" type="double">0.0</attribute>
<attribute key="leftBorderInset" type="double">0.0</attribute>
<attribute key="rightBorderInset" type="double">0.0</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">logic (8 func, 219 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="model" type="String">sandwich</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0.0</attribute>
</section>
<attribute key="isGroup" type="boolean">true</attribute>
<attribute key="gid" type="int">3</attribute>
<attribute key="gid" type="int">6</attribute>
</section>
<section name="node">
<attribute key="id" type="int">8</attribute>
<attribute key="label" type="String">logic</attribute>
<attribute key="label" type="string">logic (9 func, 263 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="x" type="double">156.0</attribute>
<attribute key="y" type="double">-194.640873015873</attribute>
<attribute key="w" type="double">72.0</attribute>
<attribute key="h" type="double">26.0</attribute>
<attribute key="type" type="String">rectangle</attribute>
<attribute key="fill" type="String">#FFFFFF</attribute>
<attribute key="outline" type="String">#000000</attribute>
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">260</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">logic (9 func, 263 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">4</attribute>
</section>
<section name="node">
<attribute key="id" type="int">9</attribute>
<attribute key="label" type="string">logic</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">72</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">logic</attribute>
<attribute key="fontSize" type="int">16</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="anchor" type="String">c</attribute>
</section>
<attribute key="gid" type="int">7</attribute>
</section>
<section name="node">
<attribute key="id" type="int">9</attribute>
<attribute key="label" type="String">packages_folder (4 func, 137 lines)</attribute>
<section name="graphics">
<attribute key="x" type="double">328.0</attribute>
<attribute key="y" type="double">-194.640873015873</attribute>
<attribute key="w" type="double">182.0</attribute>
<attribute key="h" type="double">56.0</attribute>
<attribute key="type" type="String">roundrectangle</attribute>
<attribute key="fill" type="String">#F5F5F5</attribute>
<attribute key="outline" type="String">#F5F5F5</attribute>
<attribute key="topBorderInset" type="double">0.0</attribute>
<attribute key="bottomBorderInset" type="double">0.0</attribute>
<attribute key="leftBorderInset" type="double">0.0</attribute>
<attribute key="rightBorderInset" type="double">0.0</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">packages_folder (4 func, 137 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="model" type="String">sandwich</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0.0</attribute>
</section>
<attribute key="isGroup" type="boolean">true</attribute>
<attribute key="gid" type="int">3</attribute>
<attribute key="gid" type="int">8</attribute>
</section>
<section name="node">
<attribute key="id" type="int">10</attribute>
<attribute key="label" type="String">packages_folder</attribute>
<attribute key="label" type="string">packages_folder (3 func, 85 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="x" type="double">328.0</attribute>
<attribute key="y" type="double">-194.640873015873</attribute>
<attribute key="w" type="double">152.0</attribute>
<attribute key="h" type="double">26.0</attribute>
<attribute key="type" type="String">rectangle</attribute>
<attribute key="fill" type="String">#FFFFFF</attribute>
<attribute key="outline" type="String">#000000</attribute>
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">350</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">packages_folder (3 func, 85 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">4</attribute>
</section>
<section name="node">
<attribute key="id" type="int">11</attribute>
<attribute key="label" type="string">packages_folder</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">152</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">packages_folder</attribute>
<attribute key="fontSize" type="int">16</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="anchor" type="String">c</attribute>
</section>
<attribute key="gid" type="int">9</attribute>
<attribute key="gid" type="int">10</attribute>
</section>
<section name="node">
<attribute key="id" type="int">11</attribute>
<attribute key="label" type="String">pkg</attribute>
<attribute key="id" type="int">12</attribute>
<attribute key="label" type="string">parse_go (6 func, 160 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="x" type="double">328.0</attribute>
<attribute key="y" type="double">-86.46118551587301</attribute>
<attribute key="w" type="double">159.244140625</attribute>
<attribute key="h" type="double">101.640625</attribute>
<attribute key="type" type="String">roundrectangle</attribute>
<attribute key="fill" type="String">#F5F5F5</attribute>
<attribute key="outline" type="String">#F5F5F5</attribute>
<attribute key="topBorderInset" type="double">0.0</attribute>
<attribute key="bottomBorderInset" type="double">0.0</attribute>
<attribute key="leftBorderInset" type="double">0.0</attribute>
<attribute key="rightBorderInset" type="double">0.0</attribute>
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">290</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">parse_go (6 func, 160 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">4</attribute>
</section>
<section name="node">
<attribute key="id" type="int">13</attribute>
<attribute key="label" type="string">parse_go</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">96</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">parse_go</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">12</attribute>
</section>
<section name="node">
<attribute key="id" type="int">14</attribute>
<attribute key="label" type="string">pkg</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">40</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">pkg</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="model" type="String">sandwich</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0.0</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="isGroup" type="boolean">true</attribute>
<attribute key="gid" type="int">0</attribute>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">12</attribute>
<attribute key="label" type="String">xgml (17 func, 367 lines)</attribute>
<attribute key="id" type="int">15</attribute>
<attribute key="label" type="string">xgml (17 func, 328 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="x" type="double">328.0</attribute>
<attribute key="y" type="double">-78.64087301587301</attribute>
<attribute key="w" type="double">94.0</attribute>
<attribute key="h" type="double">56.0</attribute>
<attribute key="type" type="String">roundrectangle</attribute>
<attribute key="fill" type="String">#F5F5F5</attribute>
<attribute key="outline" type="String">#F5F5F5</attribute>
<attribute key="topBorderInset" type="double">0.0</attribute>
<attribute key="bottomBorderInset" type="double">0.0</attribute>
<attribute key="leftBorderInset" type="double">0.0</attribute>
<attribute key="rightBorderInset" type="double">0.0</attribute>
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">260</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">xgml (17 func, 367 lines)</attribute>
<attribute key="text" type="String">xgml (17 func, 328 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="model" type="String">sandwich</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0.0</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="isGroup" type="boolean">true</attribute>
<attribute key="gid" type="int">11</attribute>
<attribute key="gid" type="int">14</attribute>
</section>
<section name="node">
<attribute key="id" type="int">13</attribute>
<attribute key="label" type="String">xgml</attribute>
<attribute key="id" type="int">16</attribute>
<attribute key="label" type="string">xgml</attribute>
<section name="graphics">
<attribute key="x" type="double">328.0</attribute>
<attribute key="y" type="double">-78.64087301587301</attribute>
<attribute key="w" type="double">64.0</attribute>
<attribute key="h" type="double">26.0</attribute>
<attribute key="type" type="String">rectangle</attribute>
<attribute key="fill" type="String">#FFFFFF</attribute>
<attribute key="outline" type="String">#000000</attribute>
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">64</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">xgml</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">15</attribute>
</section>
<section name="edge">
<attribute key="source" type="int">5</attribute>
<attribute key="target" type="int">7</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">5</attribute>
<attribute key="target" type="int">9</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">5</attribute>
<attribute key="target" type="int">13</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">9</attribute>
<attribute key="target" type="int">13</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">9</attribute>
<attribute key="target" type="int">16</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">9</attribute>
<attribute key="target" type="int">11</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">9</attribute>
<attribute key="target" type="int">7</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">5</attribute>
<attribute key="target" type="int">5</attribute>
<attribute key="label" type="String">ParseDir()()</attribute>
<section name="graphics">
<attribute key="fill" type="string">#0000FF</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">ParseDir()()</attribute>
<attribute key="color" type="String">#0000FF</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="anchor" type="String">c</attribute>
</section>
<attribute key="gid" type="int">12</attribute>
</section>
<section name="edge">
<attribute key="source" type="int">4</attribute>
<attribute key="target" type="int">8</attribute>
<section name="graphics">
<attribute key="fill" type="String">#000000</attribute>
<attribute key="targetArrow" type="String">standard</attribute>
<section name="Line">
<section name="point">
<attribute key="x" type="double">45.0</attribute>
<attribute key="y" type="double">-280.640873015873</attribute>
</section>
<section name="point">
<attribute key="x" type="double">87.0</attribute>
<attribute key="y" type="double">-271.9742063492063</attribute>
</section>
<section name="point">
<attribute key="x" type="double">87.0</attribute>
<attribute key="y" type="double">-194.640873015873</attribute>
</section>
<section name="point">
<attribute key="x" type="double">156.0</attribute>
<attribute key="y" type="double">-194.640873015873</attribute>
</section>
</section>
</section>
<section name="edgeAnchor">
<attribute key="ySource" type="double">0.6666666666666681</attribute>
<attribute key="configuration" type="String">AutoFlippingLabel</attribute>
<attribute key="contentWidth" type="double">130</attribute>
<attribute key="contentHeight" type="double">12</attribute>
<attribute key="model" type="String">two_pos</attribute>
<attribute key="position" type="String">head</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">4</attribute>
<attribute key="target" type="int">6</attribute>
<attribute key="source" type="int">5</attribute>
<attribute key="target" type="int">5</attribute>
<attribute key="label" type="String">print()()</attribute>
<section name="graphics">
<attribute key="fill" type="String">#000000</attribute>
<attribute key="targetArrow" type="String">standard</attribute>
<attribute key="fill" type="string">#0000FF</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">8</attribute>
<attribute key="target" type="int">13</attribute>
<section name="graphics">
<attribute key="fill" type="String">#000000</attribute>
<attribute key="targetArrow" type="String">standard</attribute>
<section name="Line">
<section name="point">
<attribute key="x" type="double">156.0</attribute>
<attribute key="y" type="double">-194.640873015873</attribute>
</section>
<section name="point">
<attribute key="x" type="double">217.0</attribute>
<attribute key="y" type="double">-184.240873015873</attribute>
</section>
<section name="point">
<attribute key="x" type="double">217.0</attribute>
<attribute key="y" type="double">-72.14087301587301</attribute>
</section>
<section name="point">
<attribute key="x" type="double">328.0</attribute>
<attribute key="y" type="double">-78.64087301587301</attribute>
</section>
</section>
</section>
<section name="edgeAnchor">
<attribute key="ySource" type="double">0.8000000000000005</attribute>
<attribute key="yTarget" type="double">0.5</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">8</attribute>
<attribute key="target" type="int">6</attribute>
<section name="graphics">
<attribute key="fill" type="String">#000000</attribute>
<attribute key="targetArrow" type="String">standard</attribute>
<section name="Line">
<section name="point">
<attribute key="x" type="double">156.0</attribute>
<attribute key="y" type="double">-194.640873015873</attribute>
</section>
<section name="point">
<attribute key="x" type="double">217.0</attribute>
<attribute key="y" type="double">-199.840873015873</attribute>
</section>
<section name="point">
<attribute key="x" type="double">217.0</attribute>
<attribute key="y" type="double">-271.9742063492063</attribute>
</section>
<section name="point">
<attribute key="x" type="double">328.0</attribute>
<attribute key="y" type="double">-280.640873015873</attribute>
</section>
</section>
</section>
<section name="edgeAnchor">
<attribute key="ySource" type="double">-0.39999999999999913</attribute>
<attribute key="yTarget" type="double">0.6666666666666681</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">8</attribute>
<attribute key="target" type="int">10</attribute>
<section name="graphics">
<attribute key="fill" type="String">#000000</attribute>
<attribute key="targetArrow" type="String">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">8</attribute>
<attribute key="target" type="int">13</attribute>
<section name="graphics">
<attribute key="fill" type="String">#0000FF</attribute>
<attribute key="targetArrow" type="String">standard</attribute>
<section name="Line">
<section name="point">
<attribute key="x" type="double">156.0</attribute>
<attribute key="y" type="double">-194.640873015873</attribute>
</section>
<section name="point">
<attribute key="x" type="double">227.0</attribute>
<attribute key="y" type="double">-189.44087301587302</attribute>
</section>
<section name="point">
<attribute key="x" type="double">227.0</attribute>
<attribute key="y" type="double">-85.14087301587301</attribute>
</section>
<section name="point">
<attribute key="x" type="double">328.0</attribute>
<attribute key="y" type="double">-78.64087301587301</attribute>
</section>
</section>
</section>
<section name="edgeAnchor">
<attribute key="ySource" type="double">0.39999999999999913</attribute>
<attribute key="yTarget" type="double">-0.5</attribute>
<section name="LabelGraphics">
<attribute key="text" type="String">print()()</attribute>
<attribute key="color" type="String">#0000FF</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="fontName" type="String">Dialog</attribute>
<attribute key="configuration" type="String">AutoFlippingLabel</attribute>
<attribute key="contentWidth" type="double">100</attribute>
<attribute key="contentHeight" type="double">12</attribute>
<attribute key="model" type="String">two_pos</attribute>
<attribute key="position" type="String">head</attribute>
</section>
</section>
</section>

View File

@@ -4,17 +4,17 @@
<attribute key="hierarchic" type="int">1</attribute>
<section name="node">
<attribute key="id" type="int">1</attribute>
<attribute key="label" type="string">image_packages</attribute>
<attribute key="label" type="string">logic (9 func, 263 lines)</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">150</attribute>
<attribute key="w" type="double">260</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">image_packages</attribute>
<attribute key="text" type="String">logic (9 func, 263 lines)</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
@@ -26,130 +26,6 @@
</section>
<section name="node">
<attribute key="id" type="int">2</attribute>
<attribute key="label" type="string">main</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">64</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">main</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">3</attribute>
<attribute key="label" type="string">cmd</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">40</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">cmd</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">4</attribute>
<attribute key="label" type="string">internal</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">90</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">internal</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">5</attribute>
<attribute key="label" type="string">config</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">70</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">config</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">4</attribute>
</section>
<section name="node">
<attribute key="id" type="int">6</attribute>
<attribute key="label" type="string">config</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">80</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">config</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">5</attribute>
</section>
<section name="node">
<attribute key="id" type="int">7</attribute>
<attribute key="label" type="string">logic</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">60</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">logic</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">4</attribute>
</section>
<section name="node">
<attribute key="id" type="int">8</attribute>
<attribute key="label" type="string">logic</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
@@ -162,148 +38,7 @@
<attribute key="text" type="String">logic</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">7</attribute>
</section>
<section name="node">
<attribute key="id" type="int">9</attribute>
<attribute key="label" type="string">packages_folder</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">160</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">packages_folder</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">4</attribute>
</section>
<section name="node">
<attribute key="id" type="int">10</attribute>
<attribute key="label" type="string">packages_folder</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">152</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">packages_folder</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">9</attribute>
</section>
<section name="node">
<attribute key="id" type="int">11</attribute>
<attribute key="label" type="string">pkg</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">40</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">pkg</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">1</attribute>
</section>
<section name="node">
<attribute key="id" type="int">12</attribute>
<attribute key="label" type="string">xgml</attribute>
<attribute key="isGroup" type="boolean">true</attribute>
<section name="graphics">
<attribute key="type" type="string">roundrectangle</attribute>
<attribute key="fill" type="string">#F5F5F5</attribute>
<attribute key="outline" type="string">#F5F5F5</attribute>
<attribute key="h" type="double">12</attribute>
<attribute key="w" type="double">50</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">xgml</attribute>
<attribute key="fill" type="String">#EBEBEB</attribute>
<attribute key="fontSize" type="int">10</attribute>
<attribute key="anchor" type="String">n</attribute>
<attribute key="borderDistance" type="double">0</attribute>
<attribute key="leftBorderInset" type="double">50</attribute>
<attribute key="rightBorderInset" type="double">50</attribute>
<attribute key="model" type="String">sandwich</attribute>
</section>
<attribute key="gid" type="int">11</attribute>
</section>
<section name="node">
<attribute key="id" type="int">13</attribute>
<attribute key="label" type="string">xgml</attribute>
<section name="graphics">
<attribute key="type" type="string">rectangle</attribute>
<attribute key="fill" type="string">#FFFFFF</attribute>
<attribute key="outline" type="string">#000000</attribute>
<attribute key="h" type="double">26</attribute>
<attribute key="w" type="double">64</attribute>
</section>
<section name="LabelGraphics">
<attribute key="text" type="String">xgml</attribute>
<attribute key="fontSize" type="int">16</attribute>
</section>
<attribute key="gid" type="int">12</attribute>
</section>
<section name="edge">
<attribute key="source" type="int">2</attribute>
<attribute key="target" type="int">6</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">2</attribute>
<attribute key="target" type="int">8</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">8</attribute>
<attribute key="target" type="int">6</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">8</attribute>
<attribute key="target" type="int">10</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
<section name="edge">
<attribute key="source" type="int">8</attribute>
<attribute key="target" type="int">13</attribute>
<section name="graphics">
<attribute key="fill" type="string">#000000</attribute>
<attribute key="targetArrow" type="string">standard</attribute>
</section>
</section>
</section>
</section>