Compare commits
174 Commits
a4780d2545
...
7dc392631d
| Author | SHA1 | Date | |
|---|---|---|---|
| 7dc392631d | |||
| 98f8e0b79b | |||
| 4c31ccd021 | |||
| 57d35a01ba | |||
| 6f6efa5886 | |||
| 4498c865f2 | |||
| a58adbcc8d | |||
| 8a18b95031 | |||
| c867d9d51f | |||
| 4905ef607b | |||
| 2c18c59f51 | |||
| d622fda7a9 | |||
| 831a667a27 | |||
| 947ed225b6 | |||
| b74da2dc3b | |||
| da484b08a9 | |||
| 22d7b2a11d | |||
| ac21e8d607 | |||
| 7c78226864 | |||
| fa2c7f2e8b | |||
| 07f486c72e | |||
| b5364639a5 | |||
| 2e15d4a960 | |||
| 1b0f48d374 | |||
| b3ebbff732 | |||
| e8b50da142 | |||
| 57358fa818 | |||
| 366f1060e3 | |||
| 9d41a14926 | |||
| d4fbda26d7 | |||
| e02f2d252e | |||
| 1dc5740f03 | |||
| baf763c4cb | |||
| 7fdecdbc5d | |||
| f2bb4b6954 | |||
| 2d77a793d8 | |||
| 7912e38932 | |||
| 70e508ce7a | |||
| 86acedc8aa | |||
| ae577dc023 | |||
| c0d110f386 | |||
| 2b14f76d4b | |||
| 0911cdbe5c | |||
| 24f44e73f4 | |||
| e690fb984d | |||
| b97cc1af20 | |||
| 1b85d0eca9 | |||
| c58be89104 | |||
| b84d542352 | |||
| be1bc85f40 | |||
| 0a1d85a0fe | |||
| d10f84750c | |||
| 47e045dde3 | |||
| 844898bb3c | |||
| 9ec8e382cf | |||
| 80dd2a0ae8 | |||
| b7eca62403 | |||
| ce097e2098 | |||
| c3d0cc2879 | |||
| ffccd9f2d4 | |||
| a3e8d30b6c | |||
| 3359400494 | |||
| 8da0f01699 | |||
| 16fd40f11d | |||
| 80a4dcfdc9 | |||
| ba4f4720d2 | |||
| 9052c59254 | |||
| b6205f374b | |||
| 82cd2d0e98 | |||
| 0f78d3eecc | |||
| 012c544bde | |||
| 33342345f9 | |||
| c570a04052 | |||
| cdb3f02156 | |||
| fedb821a72 | |||
| 10d6142fff | |||
| 8de3ca481a | |||
| 3faa89a749 | |||
| 1f0933e2a9 | |||
| b1eea15bac | |||
| 70227329f2 | |||
| 386800f31a | |||
| 36f87bdbd3 | |||
| 4e6be355ea | |||
| 3e53a606a6 | |||
| 40161a136a | |||
| 7880a444b1 | |||
| 59470f5396 | |||
| 41106a8686 | |||
| c8d87f6643 | |||
| 6c33de3d87 | |||
| f8bdb54c33 | |||
| 203f8428a7 | |||
| 1d4daac9ae | |||
| 0ec11aacf7 | |||
| cfb8fb9d7d | |||
| 49b436d588 | |||
| 913e067ad2 | |||
| 4b745eef99 | |||
| 58c7282701 | |||
| fe2cea5529 | |||
| 41a7cbc9da | |||
| 3dd7b1d4c6 | |||
| 4b2764e33c | |||
| 10c0d0838f | |||
| d1cdf1f8fb | |||
| e48782b897 | |||
| 8165f17fc8 | |||
| bfffd72a4a | |||
| e2f6fb9c52 | |||
| 17e6b08129 | |||
| 67ed71858c | |||
| 14766fb39b | |||
| e177cf53e6 | |||
| bd53b8edfc | |||
| d6997229c4 | |||
| be5cc090fe | |||
| 907e0082e1 | |||
| a6ca7eedde | |||
| 0616409f14 | |||
| 8d0b141217 | |||
| 513c73c5c1 | |||
| ef0c48ae17 | |||
| c6c8cf0ae8 | |||
| e2dd49e21b | |||
| 169fcdf03c | |||
| da98fc73c0 | |||
| d36dbced8e | |||
| 0856540441 | |||
| 6dd49f630d | |||
| 531f964841 | |||
| 3dc4c7af1e | |||
| fd4c1d5a65 | |||
| 8329a6ae09 | |||
| 5b8f1fbead | |||
| abe1b496a2 | |||
| bc62174566 | |||
| b245e3803a | |||
| 8b4db9ccc8 | |||
| 564cf144ff | |||
| d7eae540b1 | |||
| 47fbb564b2 | |||
| 3863661b3c | |||
| 89e91c3213 | |||
| 718dbe30b7 | |||
| 54d13686cf | |||
| ed264ff026 | |||
| 5b3a753233 | |||
| 7b245da959 | |||
| 9ee344f45f | |||
| 2847bd940f | |||
| 39ce77ea63 | |||
| 8594763fa6 | |||
| 55fd203c7f | |||
| fd06b8a9a4 | |||
| f6e4bfdf2f | |||
| 767269a7cf | |||
| f10c0ef4e9 | |||
| 7ebc3c1c77 | |||
| 6ff577ece1 | |||
| 2d0dc274bf | |||
| 20e8ce1024 | |||
| f82f6ce9af | |||
| c18f0e0484 | |||
| 6af4388671 | |||
| babf1c77ce | |||
| 22cc811ae5 | |||
| 4d1eec023d | |||
| 8b1a396f68 | |||
| cfd1d29302 | |||
| 7338bb216a | |||
| 8af11151d3 | |||
| d4be64a0e9 | |||
| e607a09631 |
122
README.md
@@ -1,116 +1,30 @@
|
|||||||
<p align="center">
|
# EventMaster
|
||||||
<img src="misc/images/logo.png" width="300" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h1 align="center">EventMaster</h1>
|
The most hackable Ticket-Shop!
|
||||||
<h2 align="center">The most hackable Ticket-Shop!</h2>
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## About the project
|
|
||||||
|
|
||||||
EventMaster is a desktop application for simulating various hacking methods for web applications. It's the perfect tool to understand vulnerabilities in modern web applications.
|
|
||||||
|
|
||||||
The shop offers tickets for concerts of popular bands with a complete ordering system, account management and admin interface. The program has been deliberately provided with vulnerabilities for teaching purposes, e.g. SQL injections. If a task is solved and a vulnerability is identified, the system provides visual feedback. The progress can be viewed on an overview page.
|
|
||||||
|
|
||||||
This project is created during my Bachelor thesis. It will be used at Leibniz University Hannover for foundation lectures.
|
|
||||||
|
|
||||||
## Important notes!
|
|
||||||
- ⚠️ The project is under development, bugs may occur
|
|
||||||
- ⚠️ The software is developed for educational purposes, don't use the attack techniques without permission on other applications and systems!
|
|
||||||
- ⚠️ Works 100% offline, no data transmission to or from external services
|
|
||||||
|
|
||||||
## Features
|
|
||||||
- 13 exercises
|
|
||||||
- 3 attack techniques
|
|
||||||
- SQL-Injections
|
|
||||||
- Cross-Site-Scripting
|
|
||||||
- Broken Access Control
|
|
||||||
- Exercise control system - check the progress and get feedback for solved exercises!
|
|
||||||
- Full working ticket shop:
|
|
||||||
- Vuetify design
|
|
||||||
- Account management system
|
|
||||||
- Order process system
|
|
||||||
- Event locations with seat plan and seat reservation system during ordering process
|
|
||||||
- Global search
|
|
||||||
- Admin panel
|
|
||||||
- Product pages
|
|
||||||
- ExpressJs-Backend server
|
|
||||||
- REST-API
|
|
||||||
- SQLite Database
|
|
||||||
- URL simulation bar for electron application
|
|
||||||
- Works 100% offline
|
|
||||||
- Multi language support (German, English)
|
|
||||||
- Dark/Light-Mode
|
|
||||||
- Exercise progress PDF generation
|
|
||||||
- API-Documentation with Swagger
|
|
||||||
- Desktop application packed with Electron
|
|
||||||
- Database can be resetted complete or partially
|
|
||||||
|
|
||||||
### Techstack
|
|
||||||
|
|
||||||
- Axios
|
|
||||||
- Electron
|
|
||||||
- Electron Builder
|
|
||||||
- Express.js
|
|
||||||
- JsonWebToken
|
|
||||||
- jspdf
|
|
||||||
- Moment.js
|
|
||||||
- NPM
|
|
||||||
- Nodemon
|
|
||||||
- Pinia
|
|
||||||
- Sequelize
|
|
||||||
- SQLite 3
|
|
||||||
- Swagger
|
|
||||||
- TypeScript
|
|
||||||
- Vite
|
|
||||||
- Vue i18n
|
|
||||||
- Vue.js
|
|
||||||
- VueRouter
|
|
||||||
- Vuetify
|
|
||||||
|
|
||||||
### Planned features
|
|
||||||
|
|
||||||
- More attack techniques
|
|
||||||
- More exercises
|
|
||||||
- More languages
|
|
||||||
- Customize the offered set of exercises (for trainer)
|
|
||||||
- Image license view system (currently only in admin panel)
|
|
||||||
|
|
||||||
### Screenshots
|
|
||||||
|
|
||||||
#### Band Detail page
|
|
||||||

|
|
||||||
|
|
||||||
#### Booking page
|
|
||||||

|
|
||||||
|
|
||||||
#### Admin panel
|
|
||||||

|
|
||||||
|
|
||||||
#### Global search
|
|
||||||

|
|
||||||
|
|
||||||
#### Feedback on exercise solution
|
|
||||||

|
|
||||||
|
|
||||||
## How to use
|
## How to use
|
||||||
|
|
||||||
### Download pre-builded images
|
### Prepare development environment
|
||||||
|
|
||||||
Go to releases and download one of the pre-builded images for your operating system.
|
1. Install node.js
|
||||||
|
|
||||||
### Build yourself
|
```bash
|
||||||
|
sudo apt install npm
|
||||||
|
|
||||||
1. Download + extract the project
|
# If outdated version:
|
||||||
2. Open the root folder with VS Code (recommended)
|
sudo npm install -g n
|
||||||
3. Open the bash inside VS Code and install all necessary packages:
|
sudo n stable
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Download + extract the project
|
||||||
|
3. Open the root folder with VS Code (recommended)
|
||||||
|
4. Open the bash inside VS Code and install all necessary packages:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm i
|
npm i
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Test/development
|
### Test/development
|
||||||
|
|
||||||
There are multiple commands to test parts or the whole project:
|
There are multiple commands to test parts or the whole project:
|
||||||
|
|
||||||
@@ -120,7 +34,7 @@ There are multiple commands to test parts or the whole project:
|
|||||||
|
|
||||||
The frontend runs on `http://localhost:5173/` and the backend on `http://localhost:3000/`
|
The frontend runs on `http://localhost:5173/` and the backend on `http://localhost:3000/`
|
||||||
|
|
||||||
#### Build
|
### Build
|
||||||
|
|
||||||
- `npm run vite:build`: Build Vue frontend only
|
- `npm run vite:build`: Build Vue frontend only
|
||||||
- `npm run server:build`: Build ExpressJs backend only
|
- `npm run server:build`: Build ExpressJs backend only
|
||||||
@@ -133,7 +47,3 @@ The frontend runs on `http://localhost:5173/` and the backend on `http://localho
|
|||||||
|
|
||||||
### Database
|
### Database
|
||||||

|

|
||||||
|
|
||||||
### Frontend-Backend-System
|
|
||||||
|
|
||||||

|
|
||||||
|
|||||||
@@ -1,84 +0,0 @@
|
|||||||
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.0.9 Chrome/128.0.6613.186 Electron/32.2.5 Safari/537.36" version="26.0.9">
|
|
||||||
<diagram name="Page-1" id="6ideKt-3XiqBCAVgAsyQ">
|
|
||||||
<mxGraphModel dx="1195" dy="689" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
|
||||||
<root>
|
|
||||||
<mxCell id="0" />
|
|
||||||
<mxCell id="1" parent="0" />
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-49" value="Frontend" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="40" y="90" width="400" height="220" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-52" value="Subpage<div>"All Bands"</div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="50" y="120" width="150" height="180" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-50" value="Backend" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="630" y="90" width="210" height="280" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-55" value="API Endpoint" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="650" y="120" width="170" height="100" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-46" value="bandStore" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="270" y="120" width="160" height="160" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-70" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#00CC00;" parent="1" source="KDqfIFqn06qLZiIO6-10-47" target="KDqfIFqn06qLZiIO6-10-65" edge="1">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-71" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#00CC00;" parent="1" source="KDqfIFqn06qLZiIO6-10-47" target="KDqfIFqn06qLZiIO6-10-66" edge="1">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-73" value="<font color="#00cc00">Handles</font><div><font color="#00cc00">changes</font></div>" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#00CC00;" parent="1" source="KDqfIFqn06qLZiIO6-10-47" target="KDqfIFqn06qLZiIO6-10-72" edge="1">
|
|
||||||
<mxGeometry x="0.168" y="24" relative="1" as="geometry">
|
|
||||||
<mxPoint as="offset" />
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-47" value="bands" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="290" y="230" width="120" height="30" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-59" value="<div style=""><font style="color: rgb(204, 0, 0);">Stores</font></div><div style=""><font style="color: rgb(204, 0, 0);">results</font></div>" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;align=left;fillColor=#e51400;strokeColor=#B20000;" parent="1" source="KDqfIFqn06qLZiIO6-10-48" target="KDqfIFqn06qLZiIO6-10-47" edge="1">
|
|
||||||
<mxGeometry x="-0.2" y="10" relative="1" as="geometry">
|
|
||||||
<mxPoint as="offset" />
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-67" value="<font style="color: rgb(0, 29, 188);">requests</font>" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;verticalAlign=bottom;fillColor=#0050ef;strokeColor=#001DBC;" parent="1" source="KDqfIFqn06qLZiIO6-10-48" target="KDqfIFqn06qLZiIO6-10-56" edge="1">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-48" value="getBands()" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="290" y="150" width="120" height="30" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-53" value="<font color="#bd7000">Call function</font>" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;verticalAlign=bottom;fillColor=#f0a30a;strokeColor=#BD7000;" parent="1" source="KDqfIFqn06qLZiIO6-10-52" target="KDqfIFqn06qLZiIO6-10-48" edge="1">
|
|
||||||
<mxGeometry x="-0.2148" y="7" relative="1" as="geometry">
|
|
||||||
<mxPoint as="offset" />
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-68" value="<font style="color: rgb(0, 87, 0);">send http code &amp;</font><div><span style="color: light-dark(rgb(0, 87, 0), rgb(0, 87, 0)); background-color: light-dark(#ffffff, var(--ge-dark-color, #121212));">data sets</span></div>" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;verticalAlign=top;fillColor=#008a00;strokeColor=#005700;" parent="1" source="KDqfIFqn06qLZiIO6-10-56" target="KDqfIFqn06qLZiIO6-10-48" edge="1">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-56" value="/bands" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="670" y="150" width="120" height="30" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-63" value="<font style="color: rgb(0, 153, 153);">get raw</font><div><font color="#009999">datasets</font></div>" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.855;exitY=0;exitDx=0;exitDy=4.35;exitPerimeter=0;align=left;strokeColor=#009999;" parent="1" source="KDqfIFqn06qLZiIO6-10-61" edge="1">
|
|
||||||
<mxGeometry x="-0.2154" y="-9" relative="1" as="geometry">
|
|
||||||
<mxPoint as="offset" />
|
|
||||||
<mxPoint x="751" y="180" as="targetPoint" />
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-61" value="DB" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="700" y="280" width="60" height="80" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-62" value="<font style="color: rgb(255, 0, 255);">sends</font><div><font style="color: rgb(255, 0, 255);">SQL</font></div><div><font style="color: rgb(255, 0, 255);">command</font></div>" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.321;exitY=1.017;exitDx=0;exitDy=0;entryX=0.145;entryY=0;entryDx=0;entryDy=4.35;entryPerimeter=0;align=right;strokeColor=#FF00FF;exitPerimeter=0;" parent="1" source="KDqfIFqn06qLZiIO6-10-56" target="KDqfIFqn06qLZiIO6-10-61" edge="1">
|
|
||||||
<mxGeometry x="0.2159" y="-9" relative="1" as="geometry">
|
|
||||||
<mxPoint as="offset" />
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-65" value="Coldplay" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="65" y="170" width="120" height="30" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-66" value="Muse" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="65" y="210" width="120" height="30" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="KDqfIFqn06qLZiIO6-10-72" value="Radiohead" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="65" y="250" width="120" height="30" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
</root>
|
|
||||||
</mxGraphModel>
|
|
||||||
</diagram>
|
|
||||||
</mxfile>
|
|
||||||
181
misc/frontend-structure.drawio
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.17 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.17">
|
||||||
|
<diagram name="Page-1" id="z4ePnmX8JLkG3N1GDPOr">
|
||||||
|
<mxGraphModel dx="1783" dy="1720" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||||
|
<root>
|
||||||
|
<mxCell id="0" />
|
||||||
|
<mxCell id="1" parent="0" />
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-1" target="Fk8QGSgGJ1bhqam2HO4i-3" edge="1">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-1" target="Fk8QGSgGJ1bhqam2HO4i-15" edge="1">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="fY-Wzga6seKQwhded4A5-7">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="-360" y="700" as="targetPoint" />
|
||||||
|
<mxPoint x="-720" y="240" as="sourcePoint" />
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="-720" y="540" />
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-1" target="Fk8QGSgGJ1bhqam2HO4i-13">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-1" target="fY-Wzga6seKQwhded4A5-8">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-1">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="-680" y="-20" as="targetPoint" />
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="-720" y="-20" />
|
||||||
|
<mxPoint x="-680" y="-20" />
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-1" target="fY-Wzga6seKQwhded4A5-1">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-1" target="Fk8QGSgGJ1bhqam2HO4i-14">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-1" target="Fk8QGSgGJ1bhqam2HO4i-4">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-1" value="Homepage<div><font face="Courier New"><b>/</b></font></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-800" y="-120" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-2" target="Fk8QGSgGJ1bhqam2HO4i-9">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-2" target="Fk8QGSgGJ1bhqam2HO4i-8">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-2" target="Fk8QGSgGJ1bhqam2HO4i-7">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;fillColor=#6d8764;strokeColor=#3A5431;" edge="1" parent="1" target="Fk8QGSgGJ1bhqam2HO4i-2">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="-679.6666666666667" y="70" as="targetPoint" />
|
||||||
|
<mxPoint x="-680" y="-20" as="sourcePoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-2" target="fY-Wzga6seKQwhded4A5-42">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-2" value="AccountHomePage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/account</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-600" y="-40" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-3" target="Fk8QGSgGJ1bhqam2HO4i-5">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-3" value="BandsPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/bands</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-600" y="280" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-4" value="PreferencesPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/preferences</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-600" y="600" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-5" target="fY-Wzga6seKQwhded4A5-5">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="-280" y="330" />
|
||||||
|
<mxPoint x="-280" y="330" />
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-5" value="BandDetailPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/bands/detail/:bandName</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-360" y="280" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;fillColor=#e51400;strokeColor=#B20000;" edge="1" parent="1" target="Fk8QGSgGJ1bhqam2HO4i-7">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="-200" y="-220" as="targetPoint" />
|
||||||
|
<mxPoint x="-680" y="-20" as="sourcePoint" />
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="-680" y="140" />
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-7" value="LoginPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/account/login</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-360" y="120" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-8" value="AccountData<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/account/data</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-360" y="40" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-9" value="OrdersPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/account/orders</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-360" y="-40" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-13" value="AdminHome<span style="background-color: initial;">Page</span><div><div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/admin</font></b><br></div></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-600" y="760" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-14" value="HelpPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/help</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-600" y="680" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-15" target="Fk8QGSgGJ1bhqam2HO4i-16">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-15" value="LocationsPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/locations</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-600" y="440" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="Fk8QGSgGJ1bhqam2HO4i-16" target="fY-Wzga6seKQwhded4A5-5">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="-280" y="420" />
|
||||||
|
<mxPoint x="-280" y="420" />
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="Fk8QGSgGJ1bhqam2HO4i-16" value="LocationsDetailPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/locations/detail/:name</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="-360" y="440" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="fY-Wzga6seKQwhded4A5-1" target="fY-Wzga6seKQwhded4A5-5">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-1" value="ConcertsPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/concerts</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="-600" y="360" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-3" value="if logged in" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="-680" y="-60" width="80" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-4" value="else" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="-690" y="110" width="80" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="fY-Wzga6seKQwhded4A5-5" target="fY-Wzga6seKQwhded4A5-7">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="-160" y="380" />
|
||||||
|
<mxPoint x="-160" y="540" />
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-5" value="ConcertsBookingPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/concerts/booking/:id</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="-360" y="360" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-7" value="BasketPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/basket</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="-600" y="520" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="fY-Wzga6seKQwhded4A5-8" target="Fk8QGSgGJ1bhqam2HO4i-5">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="fY-Wzga6seKQwhded4A5-8" target="fY-Wzga6seKQwhded4A5-5">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="fY-Wzga6seKQwhded4A5-8" target="Fk8QGSgGJ1bhqam2HO4i-16">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-8" value="SearchPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/search</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="-600" y="200" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-14" value="if ticket add to basket" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="-290" y="510" width="130" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-29" value="on log out" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="-460" y="90" width="60" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="fY-Wzga6seKQwhded4A5-42" value="AccountRatingsPage<div><b style="font-family: &quot;Courier New&quot;;"><font style="font-size: 10px;">/account/ratings</font></b><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="-360" y="-120" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
</root>
|
||||||
|
</mxGraphModel>
|
||||||
|
</diagram>
|
||||||
|
</mxfile>
|
||||||
|
Before Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 11 MiB |
|
Before Width: | Height: | Size: 133 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 11 KiB |