-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy patherd.vuerd.json
55 lines (55 loc) · 43.9 KB
/
erd.vuerd.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{
"canvas": {
"version": "2.2.11",
"width": 2000,
"height": 2000,
"scrollTop": -1199.6666666666667,
"scrollLeft": -170.66666666666674,
"zoomLevel": 1,
"show": {
"tableComment": true,
"columnComment": true,
"columnDataType": true,
"columnDefault": true,
"columnAutoIncrement": false,
"columnPrimaryKey": true,
"columnUnique": false,
"columnNotNull": true,
"relationship": true
},
"database": "MySQL",
"databaseName": "",
"canvasType": "@vuerd/builtin-visualization",
"language": "GraphQL",
"tableCase": "pascalCase",
"columnCase": "camelCase",
"highlightTheme": "VS2015",
"bracketType": "none",
"setting": {
"relationshipDataTypeSync": true,
"relationshipOptimization": false,
"columnOrder": [
"columnName",
"columnDataType",
"columnNotNull",
"columnUnique",
"columnAutoIncrement",
"columnDefault",
"columnComment"
]
},
"pluginSerializationMap": {
"@vuerd/plugin-generate-template": "eyJkYXRhVHlwZXMiOlt7Im5hbWUiOiJiZmlsZSIsInByaW1pdGl2ZVR5cGUiOiJsb2IiLCJ1dWlkIjoiMWE5ZGFiZDUtNTZlMC00YzIzLWJmYWYtMDMzM2U5NTIyZDIwIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ2LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDZ9LHsibmFtZSI6ImJpZ2ludCIsInByaW1pdGl2ZVR5cGUiOiJsb25nIiwidXVpZCI6Ijc0YTI5ZTk2LTI2YWMtNGU3OC1iZjVlLTFhOWYwYmVjMjliOSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU0NywiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTQ3fSx7Im5hbWUiOiJiaWdzZXJpYWwiLCJwcmltaXRpdmVUeXBlIjoibG9uZyIsInV1aWQiOiJlYWY5ZmM0YS01ZWU2LTQxYWUtYTM0ZC0xODU0NDJiZWMwM2YiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDcsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0N30seyJuYW1lIjoiYmluYXJ5IiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiIxZmY3ZjYxZi0yNGJmLTQ4YTUtYjA5Yy0wNzFkZjBmYmYzODEiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDcsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0N30seyJuYW1lIjoiYmluYXJ5X2RvdWJsZSIsInByaW1pdGl2ZVR5cGUiOiJkb3VibGUiLCJ1dWlkIjoiOGY3NDA1MWMtOWRjYy00NjIzLTgzNzktMTIzMGMxMjI0OTRhIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ3LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDd9LHsibmFtZSI6ImJpbmFyeV9mbG9hdCIsInByaW1pdGl2ZVR5cGUiOiJmbG9hdCIsInV1aWQiOiJlYjg3ODM1OS05NTNmLTQ1ZDEtODliNy1iMjlmOWE1Mzk1NDkiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDgsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OH0seyJuYW1lIjoiYml0IiwicHJpbWl0aXZlVHlwZSI6ImludCIsInV1aWQiOiJlNWFlNzFhZC0yYTc0LTRjZDYtYWQ0My1lMjAzZGEwYjZiOGMiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDgsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OH0seyJuYW1lIjoiYml0IHZhcnlpbmciLCJwcmltaXRpdmVUeXBlIjoiaW50IiwidXVpZCI6IjE2ZmVkZmFkLTRkNWMtNDQ2YS1hZWJlLTQxMGNmYzRkMzg4NiIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU0OCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTQ4fSx7Im5hbWUiOiJibG9iIiwicHJpbWl0aXZlVHlwZSI6ImxvYiIsInV1aWQiOiJjYzJkYzkzYy1mYTM4LTQxYWYtYTYzYS0yNzIwZTI1NGIxYTEiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDgsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OH0seyJuYW1lIjoiYm9vbCIsInByaW1pdGl2ZVR5cGUiOiJib29sZWFuIiwidXVpZCI6ImFhN2Q5Mzg5LThjN2MtNDU0OS1iZmZiLTk0NjFjZWYzZmVmMCIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU0OCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTQ4fSx7Im5hbWUiOiJib29sZWFuIiwicHJpbWl0aXZlVHlwZSI6ImJvb2xlYW4iLCJ1dWlkIjoiN2Q0YzhlZTYtN2NmZi00ZmVjLTkwMWMtMDgxNTI0OGQwYzUxIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ4LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDh9LHsibmFtZSI6ImJveCIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiNTBhZjFjMDgtNWYwMy00N2Y1LTg3YjktYjc4NDM1MmIwMGVkIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ4LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDh9LHsibmFtZSI6ImJ5dGVhIiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiIwMjA1NjYyNi02YzFmLTRhOTgtOTE1Yi1iNTc2YjRlYTExOGQiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDgsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OH0seyJuYW1lIjoiY2hhciIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiMzYzY2E1OWMtYWM4My00ZjgwLWE3YzQtMWQ0OGJlMDJkMjVjIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ4LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDh9LHsibmFtZSI6ImNoYXJhY3RlciIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiZjQ2MmIzYzItYmQzNS00YWM4LTllNGYtZjJmMWM2ZDkxNDY3IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6ImNoYXJhY3RlciB2YXJ5aW5nIiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiIwZDY0MzA4Ni1iNDM3LTRmYTAtODVmYy1lOGVkYzgxNGMxYjYiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDksImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OX0seyJuYW1lIjoiY2lkciIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiMzhiNzFkZWEtM2UyOS00NzE1LWFmOWMtZDBhZmVhYjU4NjJjIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6ImNpcmNsZSIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiOWYzNzRkMTAtNTcwNi00NGI5LThiYjUtYTNlZjY4M2E3ZWUzIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6ImNsb2IiLCJwcmltaXRpdmVUeXBlIjoibG9iIiwidXVpZCI6ImIxNTlkOTNiLWI2ZjItNGMzZC1iZWM2LWY2MzFlNWFmZTc0MSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU0OSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTQ5fSx7Im5hbWUiOiJkYXRlIiwicHJpbWl0aXZlVHlwZSI6ImRhdGUiLCJ1dWlkIjoiNzZkYmU5MjAtODVkNS00NjM5LWFkMTgtYTIyNzVlNDYzMjMyIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6ImRhdGV0aW1lIiwicHJpbWl0aXZlVHlwZSI6ImRhdGV0aW1lIiwidXVpZCI6ImZmZGMwZmFmLWQ2NjAtNDQ3MS1iMTQ1LTE2YjUwZDRlYTM1ZSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU0OSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTQ5fSx7Im5hbWUiOiJkYXRldGltZTIiLCJwcmltaXRpdmVUeXBlIjoiZGF0ZXRpbWUiLCJ1dWlkIjoiYjljYzYzYTYtOTI3Ny00ODM3LWI4MjgtOTFhMDBjMWJkMzZmIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6ImRhdGV0aW1lb2Zmc2V0IiwicHJpbWl0aXZlVHlwZSI6ImRhdGV0aW1lIiwidXVpZCI6ImYwOWQ2ZTE4LTM5NTUtNDAxYi05ZmI2LWZlYjU0MWJjNjg3MyIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU0OSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTQ5fSx7Im5hbWUiOiJkZWMiLCJwcmltaXRpdmVUeXBlIjoiZGVjaW1hbCIsInV1aWQiOiIwNGEwNmYyYi1jODk5LTRjZTAtOTliMy1lYTQ0MmZkODE0MTkiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDksImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OX0seyJuYW1lIjoiZGVjaW1hbCIsInByaW1pdGl2ZVR5cGUiOiJkZWNpbWFsIiwidXVpZCI6IjQ5NWY0MWE3LTRjZWMtNDE0Ny1hMGU0LWUzZTZlYmQ4YzZhZCIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU0OSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTQ5fSx7Im5hbWUiOiJkb3VibGUiLCJwcmltaXRpdmVUeXBlIjoiZG91YmxlIiwidXVpZCI6IjFlNzYwZDFlLTVkMWItNDQ1NS1iNGFkLTgzZjE2N2EzMjBhZSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU0OSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTQ5fSx7Im5hbWUiOiJkb3VibGUgcHJlY2lzaW9uIiwicHJpbWl0aXZlVHlwZSI6ImRvdWJsZSIsInV1aWQiOiJmYWRlMzI0My0yZDJlLTRjMWUtOGY0OS0zNGQ4Mjg0YzkzYTgiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDksImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OX0seyJuYW1lIjoiZW51bSIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiZWY4Y2EwZWUtODQ0YS00NmZhLTgxZWItMWY5M2UyYmFmNzk0IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6ImZpeGVkIiwicHJpbWl0aXZlVHlwZSI6ImRlY2ltYWwiLCJ1dWlkIjoiMjVhNTc1ZmYtMjU4My00Zjk5LWI1OTAtMDJiYWIxMjYzZDdlIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6ImZsb2F0IiwicHJpbWl0aXZlVHlwZSI6ImZsb2F0IiwidXVpZCI6ImNhZDQ1ZDViLTE3MDItNDJlYi1iOTM3LTFhOTMwY2E5ZDdlOSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU0OSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTQ5fSx7Im5hbWUiOiJmbG9hdDQiLCJwcmltaXRpdmVUeXBlIjoiZmxvYXQiLCJ1dWlkIjoiNDZmNzg4ZDMtNjE2Yi00OWRkLWExMDMtZDQxYjdhZTNjZjMxIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6ImZsb2F0OCIsInByaW1pdGl2ZVR5cGUiOiJkb3VibGUiLCJ1dWlkIjoiMmU5ZDhhMDctODMwYi00MzE4LWI0YWItNzZiYTM4YzgxOGIyIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6Imdlb2dyYXBoeSIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiOThjNmJmNDktMGZhMi00ZWE5LWExYmMtYmM5ODlkNjExNDNmIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6Imdlb21ldHJ5IiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiIxZjVmYmRjOC0wNjdhLTQ4OGEtOTg0MS0xYTZhMzkzMjkwNDIiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDksImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OX0seyJuYW1lIjoiZ2VvbWV0cnljb2xsZWN0aW9uIiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiI0OGE2OWE4Yi0xODU4LTQ2OGItODdhMS03M2FmOTRkYWRmNTQiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDksImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OX0seyJuYW1lIjoiaW1hZ2UiLCJwcmltaXRpdmVUeXBlIjoibG9iIiwidXVpZCI6ImQ0NWExNTdjLTZjMWMtNDU5Yi1hNjdiLTY5MDU5NzQxZDkxOCIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU0OSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTQ5fSx7Im5hbWUiOiJpbmV0IiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiIxYjgwNDBiYS1iODM4LTRkZjItOGM4Ny05M2Q1N2RlZGQ3NzIiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDksImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OX0seyJuYW1lIjoiaW50IiwicHJpbWl0aXZlVHlwZSI6ImludCIsInV1aWQiOiI5OTdiZTEyNC1jMmE1LTRkNGMtYTUyYi02M2Y4NjA3YjIxZjEiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NDksImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU0OX0seyJuYW1lIjoiaW50MiIsInByaW1pdGl2ZVR5cGUiOiJpbnQiLCJ1dWlkIjoiYWRhMTY4MzEtNzM2Yy00YzdjLWE1NjctM2Q1YzUwZjhlYTUwIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTQ5LCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NDl9LHsibmFtZSI6ImludDQiLCJwcmltaXRpdmVUeXBlIjoiaW50IiwidXVpZCI6IjVmYmMxNTMxLThlODMtNGZiNS04N2Y5LWQ2ZTIzNzk2YTliYiIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUwfSx7Im5hbWUiOiJpbnQ4IiwicHJpbWl0aXZlVHlwZSI6ImxvbmciLCJ1dWlkIjoiNmQzNzMyODItNDE2Ny00NmYyLWE3NzYtOGE5NmMyMzRjNjY2IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUwLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTB9LHsibmFtZSI6ImludGVnZXIiLCJwcmltaXRpdmVUeXBlIjoiaW50IiwidXVpZCI6ImMyMGJkOGM3LWQ4ZTItNDQ4OS1iMjhjLTZkNDdmZGM5NDJmMSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUwfSx7Im5hbWUiOiJpbnRlcnZhbCIsInByaW1pdGl2ZVR5cGUiOiJ0aW1lIiwidXVpZCI6IjllNGNkZDZmLWVjOWQtNDZiNC1iMjdmLWRhMzZhYmRlMTIyNSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUwfSx7Im5hbWUiOiJqc29uIiwicHJpbWl0aXZlVHlwZSI6ImxvYiIsInV1aWQiOiI5NjY4NjgzZi0xNDg0LTQ1YjEtYTRkNi0xNTk3ZmZjNGQ2YWMiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTAsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MH0seyJuYW1lIjoianNvbmIiLCJwcmltaXRpdmVUeXBlIjoibG9iIiwidXVpZCI6ImNmMjQxMWFiLTMzZWItNDZjOS04MjdhLTA1YTQ4NjFkMGQxZiIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUwfSx7Im5hbWUiOiJsaW5lIiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiJmNGUzNDFkMS1lNTAxLTQ5YTQtYmM4MS0zOWI0NGJlMDA5MDEiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTAsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MH0seyJuYW1lIjoibGluZXN0cmluZyIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiODFkYjQ0YmItOGYzNC00YzQxLTkyNjQtYjcxNGU5MmM5MTAyIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUwLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTB9LHsibmFtZSI6ImxvbmciLCJwcmltaXRpdmVUeXBlIjoibG9iIiwidXVpZCI6IjE4MzllMzliLWIyNmItNGI3OC04MDRkLTNmYzlmMjc0N2E3OSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUwfSx7Im5hbWUiOiJsb25nIHJhdyIsInByaW1pdGl2ZVR5cGUiOiJsb2IiLCJ1dWlkIjoiZWNlMmE4MWQtOWFhOC00ZDU1LTgzODMtZDgyNTQzOWM2MDhkIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUwLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTB9LHsibmFtZSI6ImxvbmdibG9iIiwicHJpbWl0aXZlVHlwZSI6ImxvYiIsInV1aWQiOiI5ODg4YzE1ZS1jZWQ1LTRlMjYtOWMzYy0zYTA5OTkyYzIxZjMiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTAsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MH0seyJuYW1lIjoibG9uZ3RleHQiLCJwcmltaXRpdmVUeXBlIjoibG9iIiwidXVpZCI6ImYyNWE2NzRmLWE0MjktNDBjMS1iMzVlLTQ2MzQ3Y2EyNzAzMyIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUwfSx7Im5hbWUiOiJsc2VnIiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiIwNTMyMWVlZC1lMjdmLTQ4ODktODM0MS05YjI5MmMzZDUwYzYiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTAsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MH0seyJuYW1lIjoibWFjYWRkciIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiNzdkMmQyZjgtZTc0Zi00YzYzLWJlY2QtYWQ1NTdlNDRlM2UyIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUwLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTB9LHsibmFtZSI6Im1hY2FkZHI4IiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiJhMzRiNGY0Yy0zNjYzLTQ0MTMtODE2MS04YWZkNDAzYTBkM2QiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTAsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MH0seyJuYW1lIjoibWVkaXVtYmxvYiIsInByaW1pdGl2ZVR5cGUiOiJsb2IiLCJ1dWlkIjoiZDg2MTA4N2ItZDA0MC00MzVjLWEzMWUtYzc5MzZhNGI3YmFlIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUwLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTB9LHsibmFtZSI6Im1lZGl1bWludCIsInByaW1pdGl2ZVR5cGUiOiJpbnQiLCJ1dWlkIjoiN2RkZmYwZmQtODU3ZC00ZjdiLWE0ODMtMWZjM2FlYTQxYTc4IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUwLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTB9LHsibmFtZSI6Im1lZGl1bXRleHQiLCJwcmltaXRpdmVUeXBlIjoibG9iIiwidXVpZCI6IjUzNWY1M2UxLTcxM2MtNDYyYi04ZTY5LWUxYjE0MzJhOWRjYyIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUwfSx7Im5hbWUiOiJtb25leSIsInByaW1pdGl2ZVR5cGUiOiJkb3VibGUiLCJ1dWlkIjoiYzM3OWIxZjQtNGVhZC00YzdlLWIyNTUtOTY5YTIwMmFmMGVjIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUwLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTB9LHsibmFtZSI6Im11bHRpbGluZXN0cmluZyIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiNWIyY2Y0ZWQtMGJjZS00ZDkxLWExMTUtMWMyMDE4ZDI4ZDY1IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUwLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTB9LHsibmFtZSI6Im11bHRpcG9pbnQiLCJwcmltaXRpdmVUeXBlIjoic3RyaW5nIiwidXVpZCI6ImQ0ZmYxODVjLTNiMTMtNDQ1NC1hYTE1LWIzNzUxYjhlNzQwNiIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUwfSx7Im5hbWUiOiJtdWx0aXBvbHlnb24iLCJwcmltaXRpdmVUeXBlIjoic3RyaW5nIiwidXVpZCI6IjMzNWJiOThiLTRiZDQtNGUwYS1hMWFiLWU2MDljYzVhNTk4YyIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUwfSx7Im5hbWUiOiJuY2hhciIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiY2MzYWJmMjctZDNlMS00MTUyLTlhMWYtNTM4MjQ3Y2Q1YmEzIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUwLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTB9LHsibmFtZSI6Im5jbG9iIiwicHJpbWl0aXZlVHlwZSI6ImxvYiIsInV1aWQiOiI1MzA3MDk4YS04OTM1LTQ5ODktYmIxZS01NTk5YWMwMzc3M2UiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTAsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MH0seyJuYW1lIjoibnRleHQiLCJwcmltaXRpdmVUeXBlIjoibG9iIiwidXVpZCI6ImUwM2IyODIzLWQ3MjAtNGUzMy1hZjBiLWM3NjZmZGM0MWVhZCIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MCwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUwfSx7Im5hbWUiOiJudW1iZXIiLCJwcmltaXRpdmVUeXBlIjoibG9uZyIsInV1aWQiOiI1MWFlYmUwOS1kODkwLTRiYmQtYTgwYi1lZWU0YTlhMjU2MzUiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTAsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MH0seyJuYW1lIjoibnVtZXJpYyIsInByaW1pdGl2ZVR5cGUiOiJkZWNpbWFsIiwidXVpZCI6IjhjY2Q5YjllLWRkYjItNGVmNS04ZjUzLWM5ZTFiYTYzOGI5OSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJudmFyY2hhciIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiY2I2MGM3MzEtNzJkYy00NThiLThhZDMtMDQwMTZmZGJlZDUyIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6Im52YXJjaGFyMiIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiODI5MGU2MjktY2U5YS00NzY5LThmMmQtN2RmNWFiZWM4ZTI1IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InBhdGgiLCJwcmltaXRpdmVUeXBlIjoic3RyaW5nIiwidXVpZCI6ImFjOTg2NzE3LWI0OWUtNGEwOC1iNjVlLTdlZGQ4MTQzZTY1ZCIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJwZ19sc24iLCJwcmltaXRpdmVUeXBlIjoiaW50IiwidXVpZCI6ImRlZjA0OTg0LTE5YTMtNGZmZS05MmI3LWJkOWE3ZTk0OTM3ZiIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJwb2ludCIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiOTI3M2Q3MzAtYTUzZC00MmRhLTlmN2YtMGRhYThjN2FlMmFmIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InBvbHlnb24iLCJwcmltaXRpdmVUeXBlIjoic3RyaW5nIiwidXVpZCI6ImM2MDY5N2EzLWVlMzItNGE3NC1hZWQ5LWM2ZjdmZTYxYzE2NiIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJyYXciLCJwcmltaXRpdmVUeXBlIjoibG9iIiwidXVpZCI6IjA0ZGRkOGM1LTAzYWUtNDM0ZS04ZDcyLTRmZTA2YjIxNmE2YiIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJyZWFsIiwicHJpbWl0aXZlVHlwZSI6ImRvdWJsZSIsInV1aWQiOiJmZjQyZGZkNS03YjE2LTRiYWQtYjIyMi1kYzEyYmQ0ZDQzNjEiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTEsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MX0seyJuYW1lIjoic2VyaWFsIiwicHJpbWl0aXZlVHlwZSI6ImludCIsInV1aWQiOiI4NzMyYjIzOC04YTU2LTQxMjgtYTkxMC1hNTNjNDJiMDJmYTMiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTEsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MX0seyJuYW1lIjoic2VyaWFsMiIsInByaW1pdGl2ZVR5cGUiOiJpbnQiLCJ1dWlkIjoiNWYzMDRjN2UtNWVkMy00MmZmLWI0ZWQtNjkyMmI3MzU1ZWNlIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InNlcmlhbDQiLCJwcmltaXRpdmVUeXBlIjoiaW50IiwidXVpZCI6ImE3ODhhZTc0LTY0ZDItNGM5OC1iNTE4LTRhNDllZjY4ODA5NiIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJzZXJpYWw4IiwicHJpbWl0aXZlVHlwZSI6ImxvbmciLCJ1dWlkIjoiY2NiNzI3YzktODNkZS00YjNkLWFlMWItOGJkMDFjMjBiOWI2IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InNldCIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiNTA0YTVjMzgtMDM4Ni00YzIyLTgwMGItYjc2NWE2YjVhOTU1IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InNtYWxsZGF0ZXRpbWUiLCJwcmltaXRpdmVUeXBlIjoiZGF0ZXRpbWUiLCJ1dWlkIjoiY2U2ZGQzNzMtOGViOS00YzQ3LWFmOTEtYzExMWEyODJhZmMzIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InNtYWxsaW50IiwicHJpbWl0aXZlVHlwZSI6ImludCIsInV1aWQiOiJmYTdhYWNmMi0wYTdjLTRmYjMtYmUxYi05NmQ3ZjQyZDcyODMiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTEsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MX0seyJuYW1lIjoic21hbGxtb25leSIsInByaW1pdGl2ZVR5cGUiOiJmbG9hdCIsInV1aWQiOiI1ZDYzZjU2YS01MmE4LTQ3YTItOWQ3Ny03NTBlNzQyNGM0M2IiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTEsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MX0seyJuYW1lIjoic21hbGxzZXJpYWwiLCJwcmltaXRpdmVUeXBlIjoiaW50IiwidXVpZCI6IjJmZmU2YzVlLWYwYzMtNGY3ZC04YzI4LWRkNzdjNzk3MWI5YiIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJzcWxfdmFyaWFudCIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiZjYzNzJkMTMtMGRhMi00NWY5LTlmODktZGExNTJhZmJjMmFmIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InRleHQiLCJwcmltaXRpdmVUeXBlIjoibG9iIiwidXVpZCI6ImM1NjA0YjVhLWJjYTctNDdiZC1hYmYzLTVhNzE5MzZhN2ExZiIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJ0aW1lIiwicHJpbWl0aXZlVHlwZSI6InRpbWUiLCJ1dWlkIjoiNmFmNzIyNTMtMTU2ZC00ZTMzLWFiZTctZGQzNjNmMDA4ZDVjIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InRpbWUgd2l0aCB0aW1lIHpvbmUiLCJwcmltaXRpdmVUeXBlIjoidGltZSIsInV1aWQiOiJmZWUxMWZmZi00ZWNlLTRjNDctYmNkYi1jZTk3OTkzOGRiNDIiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTEsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MX0seyJuYW1lIjoidGltZXN0YW1wIiwicHJpbWl0aXZlVHlwZSI6ImRhdGV0aW1lIiwidXVpZCI6Ijg0OWZlN2VhLTVkMDAtNDY0Mi1iMjU4LTA1NDIxNDY2OTY0MyIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJ0aW1lc3RhbXAgd2l0aCBsb2NhbCB0aW1lIHpvbmUiLCJwcmltaXRpdmVUeXBlIjoiZGF0ZXRpbWUiLCJ1dWlkIjoiZTdlMGQ0ZmMtYzVkYi00NGU5LTgzNTctODUwZGE4ZmFkMjQ5IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSIsInByaW1pdGl2ZVR5cGUiOiJkYXRldGltZSIsInV1aWQiOiJhMTkxYWM2Yi1mNmFmLTRkODItODE1YS1iZDcyZjUzOWRmYjIiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTEsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1MX0seyJuYW1lIjoidGltZXN0YW1wdHoiLCJwcmltaXRpdmVUeXBlIjoiZGF0ZXRpbWUiLCJ1dWlkIjoiYzg1YjVjMTctNWRhYi00ZDZjLTlkYjAtOGRiYzZmZTA5ZTU0IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InRpbWV0eiIsInByaW1pdGl2ZVR5cGUiOiJ0aW1lIiwidXVpZCI6ImYxMTlhZmFhLWM1YzQtNDJjNi1iYjc4LWFhMmQwN2FhYmMzMyIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJ0aW55YmxvYiIsInByaW1pdGl2ZVR5cGUiOiJsb2IiLCJ1dWlkIjoiZDIxMzIzMmUtMjZhYy00YTEwLWFjNWMtZTc3NTdmOTA4ZTZmIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InRpbnlpbnQiLCJwcmltaXRpdmVUeXBlIjoiaW50IiwidXVpZCI6IjAzMTBkMzNmLTBiOWYtNGVkYy1iMmRkLWI0NzY5MzUzZjE5YSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJ0aW55dGV4dCIsInByaW1pdGl2ZVR5cGUiOiJsb2IiLCJ1dWlkIjoiNTFkMGM1NzctMmNiMi00NjdlLWE1NWQtNzU4MzM0ODM5MDQyIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUxLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTF9LHsibmFtZSI6InRzcXVlcnkiLCJwcmltaXRpdmVUeXBlIjoic3RyaW5nIiwidXVpZCI6IjUyODk3MGJlLTk4MmQtNDM0MS1iNTQ2LTllNDk4NGY2MzNlZSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MSwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUxfSx7Im5hbWUiOiJ0c3ZlY3RvciIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiMDE3NmE2OWItMTA3ZC00ODlhLWFjZDktYWNmZDg5NDRkZjcyIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUyLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTJ9LHsibmFtZSI6InR4aWRfc25hcHNob3QiLCJwcmltaXRpdmVUeXBlIjoic3RyaW5nIiwidXVpZCI6Ijk1OGY5N2VhLTYzNTgtNDZiMi1iMjAzLTQwNWNlYzFkYWZjZSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MiwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUyfSx7Im5hbWUiOiJ1bmlxdWVpZGVudGlmaWVyIiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiIxZDEzZDM2MS1iNWZkLTQyNjYtOWFmZi0yNGNiMzk1OTg2YzAiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTIsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1Mn0seyJuYW1lIjoidXJpdHlwZSIsInByaW1pdGl2ZVR5cGUiOiJzdHJpbmciLCJ1dWlkIjoiNmJlYzBiMjEtZDExOS00MjQ3LWFkOGEtNjYzNGI0NDc0Nzg0IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUyLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTJ9LHsibmFtZSI6InV1aWQiLCJwcmltaXRpdmVUeXBlIjoic3RyaW5nIiwidXVpZCI6ImE4MDkzZjY0LWM2ZWQtNGRjYy1iMzQ1LWViMDMwY2Q2YjlkNCIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MiwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUyfSx7Im5hbWUiOiJ2YXJiaW5hcnkiLCJwcmltaXRpdmVUeXBlIjoic3RyaW5nIiwidXVpZCI6ImUyZTVmOGZkLTBjNzgtNDI0Ny04NDIzLTk2NTQ2NzMwMzlmNCIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MiwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUyfSx7Im5hbWUiOiJ2YXJiaXQiLCJwcmltaXRpdmVUeXBlIjoiaW50IiwidXVpZCI6ImZlNzc3OWQwLTFiOWEtNGMyYy1iM2JkLTMxNTY5ZDUxMTdhMCIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MiwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUyfSx7Im5hbWUiOiJ2YXJjaGFyIiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiJjYTQ5ZTA5My0yYjJiLTQ0NDktYWE5OC1hMDVlOTY1M2M1OWYiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTIsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1Mn0seyJuYW1lIjoidmFyY2hhcjIiLCJwcmltaXRpdmVUeXBlIjoic3RyaW5nIiwidXVpZCI6IjNlZTg4NGNmLTFiYTYtNDA3OS05OWZmLThiNWQ3OTQ3YWFmZSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MiwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUyfSx7Im5hbWUiOiJ4bWwiLCJwcmltaXRpdmVUeXBlIjoibG9iIiwidXVpZCI6IjAyOWVlYmM4LWFiNTYtNGI2My05OWVjLWYyNzUxOTA3NTE4ZCIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MiwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUyfSx7Im5hbWUiOiJ4bWx0eXBlIiwicHJpbWl0aXZlVHlwZSI6InN0cmluZyIsInV1aWQiOiIzMjFiNjEwNi04MjYwLTQyZWQtYmEwMC05NmMzMjEzYTViODUiLCJ1cGRhdGVkQXQiOjE2ODU0NzkyMzI1NTIsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1Mn0seyJuYW1lIjoieWVhciIsInByaW1pdGl2ZVR5cGUiOiJpbnQiLCJ1dWlkIjoiNGUwZTk0ZGUtZDg3NC00YWI3LWJhMGUtNjVmMjBhOWM5NTYzIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUyLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTJ9XSwidGVtcGxhdGVzIjpbeyJuYW1lIjoiQyMiLCJ2YWx1ZSI6IltEQVRBXS5yZWR1Y2UoKGJ1ZmZlciwgZGF0YSkgPT4ge1xuICBjb25zdCBzdGF0ZSA9IGRhdGEuc3RhdGU7XG4gIGNvbnN0IGhlbHBlciA9IGRhdGEuaGVscGVyO1xuICBjb25zdCBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcblxuICBjb25zdCB0YWJsZVN0YXRlID0gc3RhdGUudGFibGVTdGF0ZTtcbiAgY29uc3QgY2FudmFzU3RhdGUgPSBzdGF0ZS5jYW52YXNTdGF0ZTtcblxuICBjb25zdCBjb252ZXJ0VHlwZU1hcCA9IHtcbiAgICBpbnQ6ICdpbnQnLFxuICAgIGxvbmc6ICdsb25nJyxcbiAgICBmbG9hdDogJ2Zsb2F0JyxcbiAgICBkb3VibGU6ICdkb3VibGUnLFxuICAgIGRlY2ltYWw6ICdkZWNpbWFsJyxcbiAgICBib29sZWFuOiAnYm9vbCcsXG4gICAgc3RyaW5nOiAnc3RyaW5nJyxcbiAgICBsb2I6ICdzdHJpbmcnLFxuICAgIGRhdGU6ICdEYXRlVGltZScsXG4gICAgZGF0ZVRpbWU6ICdEYXRlVGltZScsXG4gICAgdGltZTogJ1RpbWVTcGFuJyxcbiAgfTtcblxuICBjb25zdCBnZXRUeXBlID0gbmFtZSA9PiB7XG4gICAgY29uc3QgZGF0YVR5cGUgPSBkYXRhVHlwZXMuZmluZChkYXRhVHlwZSA9PiBuYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihkYXRhVHlwZS5uYW1lLnRvTG93ZXJDYXNlKCkpID09PSAwKTtcbiAgICByZXR1cm4gZGF0YVR5cGUgPyBkYXRhVHlwZS50eXBlIDogJ3N0cmluZyc7XG4gIH07XG5cbiAgY29uc3QgZ2V0TmFtZUNhc2UgPSAobmFtZSwgbmFtZUNhc2UpID0+IHtcbiAgICBsZXQgY2hhbmdlTmFtZSA9IG5hbWU7XG4gICAgc3dpdGNoIChuYW1lQ2FzZSkge1xuICAgICAgY2FzZSAnY2FtZWxDYXNlJzpcbiAgICAgICAgY2hhbmdlTmFtZSA9IGhlbHBlci5jYW1lbENhc2UobmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncGFzY2FsQ2FzZSc6XG4gICAgICAgIGNoYW5nZU5hbWUgPSBoZWxwZXIucGFzY2FsQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzbmFrZUNhc2UnOlxuICAgICAgICBjaGFuZ2VOYW1lID0gaGVscGVyLnNuYWtlQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjaGFuZ2VOYW1lO1xuICB9O1xuXG4gIGNvbnN0IG9yZGVyQnlOYW1lQVNDID0gdGFibGVzID0+XG4gICAgdGFibGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IG5hbWVBID0gYS5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBuYW1lQiA9IGIubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKG5hbWVBIDwgbmFtZUIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIGlmIChuYW1lQSA+IG5hbWVCKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG5cbiAgZnVuY3Rpb24gZm9ybWF0VGFibGUodGFibGUpIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBnZXROYW1lQ2FzZSh0YWJsZS5uYW1lLCBjYW52YXNTdGF0ZS50YWJsZUNhc2UpO1xuICAgIGlmICh0YWJsZS5jb21tZW50LnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGJ1ZmZlci5wdXNoKGAvLyAke3RhYmxlLmNvbW1lbnR9YCk7XG4gICAgfVxuICAgIGJ1ZmZlci5wdXNoKGBwdWJsaWMgY2xhc3MgJHt0YWJsZU5hbWV9IHtgKTtcbiAgICB0YWJsZS5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgIGZvcm1hdENvbHVtbihjb2x1bW4pO1xuICAgIH0pO1xuICAgIGJ1ZmZlci5wdXNoKGB9YCk7XG4gIH1cblxuICBmdW5jdGlvbiBmb3JtYXRDb2x1bW4oY29sdW1uKSB7XG4gICAgY29uc3QgY29sdW1uTmFtZSA9IGdldE5hbWVDYXNlKGNvbHVtbi5uYW1lLCBjYW52YXNTdGF0ZS5jb2x1bW5DYXNlKTtcbiAgICBjb25zdCB0eXBlTmFtZSA9IGdldFR5cGUoY29sdW1uLmRhdGFUeXBlKTtcbiAgICBpZiAoY29sdW1uLmNvbW1lbnQudHJpbSgpICE9PSAnJykge1xuICAgICAgYnVmZmVyLnB1c2goYCAgLy8gJHtjb2x1bW4uY29tbWVudH1gKTtcbiAgICB9XG4gICAgYnVmZmVyLnB1c2goXG4gICAgICBgICBwdWJsaWMgJHtjb252ZXJ0VHlwZU1hcFt0eXBlTmFtZV19ICR7XG4gICAgICAgIGNvbHVtbk5hbWUuY2hhckF0KDApLnRvTG9jYWxlVXBwZXJDYXNlKCkgKyBjb2x1bW5OYW1lLnNsaWNlKDEpXG4gICAgICB9IHsgZ2V0OyBzZXQ7IH1gXG4gICAgKTtcbiAgfVxuXG4gIG9yZGVyQnlOYW1lQVNDKHRhYmxlU3RhdGUudGFibGVzKTtcblxuICB0YWJsZVN0YXRlLnRhYmxlcy5mb3JFYWNoKHRhYmxlID0+IHtcbiAgICBmb3JtYXRUYWJsZSh0YWJsZSk7XG4gICAgYnVmZmVyLnB1c2goJycpO1xuICB9KTtcblxuICByZXR1cm4gYnVmZmVyO1xufSwgW10pLmpvaW4oJ1xcbicpOyIsInV1aWQiOiJiOTBhNmFmMy01YTAxLTQwNjMtYTIzNi04ZDY4Y2E2NGVjNmEiLCJ1cGRhdGVkQXQiOjE2ODU0Nzk0OTkxNjMsImNyZWF0ZWRBdCI6MTY4NTQ3OTIzMjU1M30seyJuYW1lIjoiR3JhcGhRTCIsInZhbHVlIjoiW0RBVEFdLnJlZHVjZSgoYnVmZmVyLCBkYXRhKSA9PiB7XG4gIGNvbnN0IHN0YXRlID0gZGF0YS5zdGF0ZTtcbiAgY29uc3QgaGVscGVyID0gZGF0YS5oZWxwZXI7XG4gIGNvbnN0IGRhdGFUeXBlcyA9IGRhdGEuZGF0YVR5cGVzO1xuXG4gIGNvbnN0IHRhYmxlU3RhdGUgPSBzdGF0ZS50YWJsZVN0YXRlO1xuICBjb25zdCBjYW52YXNTdGF0ZSA9IHN0YXRlLmNhbnZhc1N0YXRlXG4gIGNvbnN0IHJlbGF0aW9uc2hpcFN0YXRlID0gc3RhdGUucmVsYXRpb25zaGlwU3RhdGU7XG5cbiAgY29uc3QgY29udmVydFR5cGVNYXAgPSB7XG4gICAgaW50OiAnSW50JyxcbiAgICBsb25nOiAnSW50JyxcbiAgICBmbG9hdDogJ0Zsb2F0JyxcbiAgICBkb3VibGU6ICdGbG9hdCcsXG4gICAgZGVjaW1hbDogJ0Zsb2F0JyxcbiAgICBib29sZWFuOiAnQm9vbGVhbicsXG4gICAgc3RyaW5nOiAnU3RyaW5nJyxcbiAgICBsb2I6ICdTdHJpbmcnLFxuICAgIGRhdGU6ICdTdHJpbmcnLFxuICAgIGRhdGVUaW1lOiAnU3RyaW5nJyxcbiAgICB0aW1lOiAnU3RyaW5nJyxcbiAgfTtcblxuICBjb25zdCBnZXRUeXBlID0gbmFtZSA9PiB7XG4gICAgY29uc3QgZGF0YVR5cGUgPSBkYXRhVHlwZXMuZmluZChkYXRhVHlwZSA9PiBuYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihkYXRhVHlwZS5uYW1lLnRvTG93ZXJDYXNlKCkpID09PSAwKTtcbiAgICByZXR1cm4gZGF0YVR5cGUgPyBkYXRhVHlwZS50eXBlIDogJ3N0cmluZyc7XG4gIH07XG5cbiAgY29uc3QgZ2V0TmFtZUNhc2UgPSAobmFtZSwgbmFtZUNhc2UpID0+IHtcbiAgICBsZXQgY2hhbmdlTmFtZSA9IG5hbWU7XG4gICAgc3dpdGNoIChuYW1lQ2FzZSkge1xuICAgICAgY2FzZSAnY2FtZWxDYXNlJzpcbiAgICAgICAgY2hhbmdlTmFtZSA9IGhlbHBlci5jYW1lbENhc2UobmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncGFzY2FsQ2FzZSc6XG4gICAgICAgIGNoYW5nZU5hbWUgPSBoZWxwZXIucGFzY2FsQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzbmFrZUNhc2UnOlxuICAgICAgICBjaGFuZ2VOYW1lID0gaGVscGVyLnNuYWtlQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjaGFuZ2VOYW1lO1xuICB9O1xuXG4gIGNvbnN0IG9yZGVyQnlOYW1lQVNDID0gdGFibGVzID0+XG4gICAgdGFibGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IG5hbWVBID0gYS5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBuYW1lQiA9IGIubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKG5hbWVBIDwgbmFtZUIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIGlmIChuYW1lQSA+IG5hbWVCKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG5cbiAgZnVuY3Rpb24gZm9ybWF0VGFibGUodGFibGUpIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBnZXROYW1lQ2FzZSh0YWJsZS5uYW1lLCBjYW52YXNTdGF0ZS50YWJsZUNhc2UpO1xuICAgIGlmICh0YWJsZS5jb21tZW50LnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGJ1ZmZlci5wdXNoKGAjICR7dGFibGUuY29tbWVudH1gKTtcbiAgICB9XG4gICAgYnVmZmVyLnB1c2goYHR5cGUgJHt0YWJsZU5hbWV9IHtgKTtcbiAgICB0YWJsZS5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgIGZvcm1hdENvbHVtbihjb2x1bW4pO1xuICAgIH0pO1xuICAgIGZvcm1hdFJlbGF0aW9uKHRhYmxlKTtcbiAgICBidWZmZXIucHVzaChgfWApO1xuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0Q29sdW1uKGNvbHVtbikge1xuICAgIGlmICghY29sdW1uLnVpLmZrKSB7XG4gICAgICBjb25zdCBjb2x1bW5OYW1lID0gZ2V0TmFtZUNhc2UoY29sdW1uLm5hbWUsIGNhbnZhc1N0YXRlLmNvbHVtbkNhc2UpO1xuICAgICAgaWYgKGNvbHVtbi5jb21tZW50LnRyaW0oKSAhPT0gJycpIHtcbiAgICAgICAgYnVmZmVyLnB1c2goYCAgIyAke2NvbHVtbi5jb21tZW50fWApO1xuICAgICAgfVxuICAgICAgY29uc3QgaWRUeXBlID0gY29sdW1uLm9wdGlvbi5wcmltYXJ5S2V5IHx8IGNvbHVtbi51aS5maztcbiAgICAgIGlmIChpZFR5cGUpIHtcbiAgICAgICAgYnVmZmVyLnB1c2goYCAgJHtjb2x1bW5OYW1lfTogSUQke2NvbHVtbi5vcHRpb24ubm90TnVsbCA/ICchJyA6ICcnfWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdHlwZU5hbWUgPSBnZXRUeXBlKGNvbHVtbi5kYXRhVHlwZSk7XG4gICAgICAgIGJ1ZmZlci5wdXNoKFxuICAgICAgICAgIGAgICR7Y29sdW1uTmFtZX06ICR7Y29udmVydFR5cGVNYXBbdHlwZU5hbWVdfSR7XG4gICAgICAgICAgICBjb2x1bW4ub3B0aW9uLm5vdE51bGwgPyAnIScgOiAnJ1xuICAgICAgICAgIH1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0UmVsYXRpb24odGFibGUpIHtcbiAgICByZWxhdGlvbnNoaXBTdGF0ZS5yZWxhdGlvbnNoaXBzXG4gICAgICAuZmlsdGVyKHJlbGF0aW9uc2hpcCA9PiByZWxhdGlvbnNoaXAuZW5kLnRhYmxlSWQgPT09IHRhYmxlLmlkKVxuICAgICAgLmZvckVhY2gocmVsYXRpb25zaGlwID0+IHtcbiAgICAgICAgY29uc3Qgc3RhcnRUYWJsZSA9IHRhYmxlU3RhdGUudGFibGVzLmZpbmQodGFibGUgPT4gdGFibGUuaWQgPT09IHJlbGF0aW9uc2hpcC5zdGFydC50YWJsZUlkKTtcbiAgICAgICAgaWYgKHN0YXJ0VGFibGUpIHtcbiAgICAgICAgICBjb25zdCB0eXBlTmFtZSA9IGdldE5hbWVDYXNlKHN0YXJ0VGFibGUubmFtZSwgY2FudmFzU3RhdGUudGFibGVDYXNlKTtcbiAgICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBnZXROYW1lQ2FzZShzdGFydFRhYmxlLm5hbWUsIGNhbnZhc1N0YXRlLmNvbHVtbkNhc2UpO1xuICAgICAgICAgIGlmIChzdGFydFRhYmxlLmNvbW1lbnQudHJpbSgpICE9PSAnJykge1xuICAgICAgICAgICAgYnVmZmVyLnB1c2goYCAgIyAke3N0YXJ0VGFibGUuY29tbWVudH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnVmZmVyLnB1c2goYCAgJHtmaWVsZE5hbWV9OiAke3R5cGVOYW1lfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICByZWxhdGlvbnNoaXBTdGF0ZS5yZWxhdGlvbnNoaXBzXG4gICAgICAuZmlsdGVyKHJlbGF0aW9uc2hpcCA9PiByZWxhdGlvbnNoaXAuc3RhcnQudGFibGVJZCA9PT0gdGFibGUuaWQpXG4gICAgICAuZm9yRWFjaChyZWxhdGlvbnNoaXAgPT4ge1xuICAgICAgICBjb25zdCBlbmRUYWJsZSA9IHRhYmxlU3RhdGUudGFibGVzLmZpbmQodGFibGUgPT4gdGFibGUuaWQgPT09IHJlbGF0aW9uc2hpcC5lbmQudGFibGVJZCk7XG4gICAgICAgIGlmIChlbmRUYWJsZSkge1xuICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZ2V0TmFtZUNhc2UoZW5kVGFibGUubmFtZSwgY2FudmFzU3RhdGUudGFibGVDYXNlKTtcbiAgICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBnZXROYW1lQ2FzZShlbmRUYWJsZS5uYW1lLCBjYW52YXNTdGF0ZS5jb2x1bW5DYXNlKTtcbiAgICAgICAgICBpZiAoZW5kVGFibGUuY29tbWVudC50cmltKCkgIT09ICcnKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChgICAjICR7ZW5kVGFibGUuY29tbWVudH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFsnWmVyb09uZScsICdPbmVPbmx5JywgJ09uZSddLmluY2x1ZGVzKHJlbGF0aW9uc2hpcC5yZWxhdGlvbnNoaXBUeXBlKSkge1xuICAgICAgICAgICAgYnVmZmVyLnB1c2goYCAgJHtmaWVsZE5hbWV9OiAke3R5cGVOYW1lfWApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoWydaZXJvT25lTicsICdaZXJvTicsICdPbmVOJywgJ04nXS5pbmNsdWRlcyhyZWxhdGlvbnNoaXAucmVsYXRpb25zaGlwVHlwZSkpIHtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKFxuICAgICAgICAgICAgICBgICAke2dldE5hbWVDYXNlKGAke2ZpZWxkTmFtZX1MaXN0YCwgY2FudmFzU3RhdGUuY29sdW1uQ2FzZSl9OiBbJHt0eXBlTmFtZX0hXSFgXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvcmRlckJ5TmFtZUFTQyh0YWJsZVN0YXRlLnRhYmxlcyk7XG5cbiAgdGFibGVTdGF0ZS50YWJsZXMuZm9yRWFjaCh0YWJsZSA9PiB7XG4gICAgZm9ybWF0VGFibGUodGFibGUpO1xuICAgIGJ1ZmZlci5wdXNoKCcnKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGJ1ZmZlcjtcbn0sIFtdKS5qb2luKCdcXG4nKTsiLCJ1dWlkIjoiMTgxNWU3NTMtNTkyNy00N2I5LWEwYzktYmQ2OWVjMGUyMzc2IiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUzLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTN9LHsibmFtZSI6IkphdmEiLCJ2YWx1ZSI6IltEQVRBXS5yZWR1Y2UoKGJ1ZmZlciwgZGF0YSkgPT4ge1xuICBjb25zdCBzdGF0ZSA9IGRhdGEuc3RhdGU7XG4gIGNvbnN0IGhlbHBlciA9IGRhdGEuaGVscGVyO1xuICBjb25zdCBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcblxuICBjb25zdCB0YWJsZVN0YXRlID0gc3RhdGUudGFibGVTdGF0ZTtcbiAgY29uc3QgY2FudmFzU3RhdGUgPSBzdGF0ZS5jYW52YXNTdGF0ZTtcblxuICBjb25zdCBjb252ZXJ0VHlwZU1hcCA9IHtcbiAgICBpbnQ6ICdJbnRlZ2VyJyxcbiAgICBsb25nOiAnTG9uZycsXG4gICAgZmxvYXQ6ICdGbG9hdCcsXG4gICAgZG91YmxlOiAnRG91YmxlJyxcbiAgICBkZWNpbWFsOiAnQmlnRGVjaW1hbCcsXG4gICAgYm9vbGVhbjogJ0Jvb2xlYW4nLFxuICAgIHN0cmluZzogJ1N0cmluZycsXG4gICAgbG9iOiAnU3RyaW5nJyxcbiAgICBkYXRlOiAnTG9jYWxEYXRlJyxcbiAgICBkYXRlVGltZTogJ0xvY2FsRGF0ZVRpbWUnLFxuICAgIHRpbWU6ICdMb2NhbFRpbWUnLFxuICB9O1xuXG4gIGNvbnN0IGdldFR5cGUgPSBuYW1lID0+IHtcbiAgICBjb25zdCBkYXRhVHlwZSA9IGRhdGFUeXBlcy5maW5kKGRhdGFUeXBlID0+IG5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGRhdGFUeXBlLm5hbWUudG9Mb3dlckNhc2UoKSkgPT09IDApO1xuICAgIHJldHVybiBkYXRhVHlwZSA/IGRhdGFUeXBlLnR5cGUgOiAnc3RyaW5nJztcbiAgfTtcblxuICBjb25zdCBnZXROYW1lQ2FzZSA9IChuYW1lLCBuYW1lQ2FzZSkgPT4ge1xuICAgIGxldCBjaGFuZ2VOYW1lID0gbmFtZTtcbiAgICBzd2l0Y2ggKG5hbWVDYXNlKSB7XG4gICAgICBjYXNlICdjYW1lbENhc2UnOlxuICAgICAgICBjaGFuZ2VOYW1lID0gaGVscGVyLmNhbWVsQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwYXNjYWxDYXNlJzpcbiAgICAgICAgY2hhbmdlTmFtZSA9IGhlbHBlci5wYXNjYWxDYXNlKG5hbWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NuYWtlQ2FzZSc6XG4gICAgICAgIGNoYW5nZU5hbWUgPSBoZWxwZXIuc25ha2VDYXNlKG5hbWUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGNoYW5nZU5hbWU7XG4gIH07XG5cbiAgY29uc3Qgb3JkZXJCeU5hbWVBU0MgPSB0YWJsZXMgPT5cbiAgICB0YWJsZXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgY29uc3QgbmFtZUEgPSBhLm5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IG5hbWVCID0gYi5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAobmFtZUEgPCBuYW1lQikge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9IGVsc2UgaWYgKG5hbWVBID4gbmFtZUIpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcblxuICBmdW5jdGlvbiBmb3JtYXRUYWJsZSh0YWJsZSkge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IGdldE5hbWVDYXNlKHRhYmxlLm5hbWUsIGNhbnZhc1N0YXRlLnRhYmxlQ2FzZSk7XG4gICAgaWYgKHRhYmxlLmNvbW1lbnQudHJpbSgpICE9PSAnJykge1xuICAgICAgYnVmZmVyLnB1c2goYC8vICR7dGFibGUuY29tbWVudH1gKTtcbiAgICB9XG4gICAgYnVmZmVyLnB1c2goYEBEYXRhYCk7XG4gICAgYnVmZmVyLnB1c2goYHB1YmxpYyBjbGFzcyAke3RhYmxlTmFtZX0ge2ApO1xuICAgIHRhYmxlLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgZm9ybWF0Q29sdW1uKGNvbHVtbik7XG4gICAgfSk7XG4gICAgYnVmZmVyLnB1c2goYH1gKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1hdENvbHVtbihjb2x1bW4pIHtcbiAgICBjb25zdCBjb2x1bW5OYW1lID0gZ2V0TmFtZUNhc2UoY29sdW1uLm5hbWUsIGNhbnZhc1N0YXRlLmNvbHVtbkNhc2UpO1xuICAgIGNvbnN0IHR5cGVOYW1lID0gZ2V0VHlwZShjb2x1bW4uZGF0YVR5cGUpO1xuICAgIGlmIChjb2x1bW4uY29tbWVudC50cmltKCkgIT09ICcnKSB7XG4gICAgICBidWZmZXIucHVzaChgICAvLyAke2NvbHVtbi5jb21tZW50fWApO1xuICAgIH1cbiAgICBidWZmZXIucHVzaChgICBwcml2YXRlICR7Y29udmVydFR5cGVNYXBbdHlwZU5hbWVdfSAke2NvbHVtbk5hbWV9O2ApO1xuICB9XG5cbiAgb3JkZXJCeU5hbWVBU0ModGFibGVTdGF0ZS50YWJsZXMpO1xuXG4gIHRhYmxlU3RhdGUudGFibGVzLmZvckVhY2godGFibGUgPT4ge1xuICAgIGZvcm1hdFRhYmxlKHRhYmxlKTtcbiAgICBidWZmZXIucHVzaCgnJyk7XG4gIH0pO1xuXG4gIHJldHVybiBidWZmZXI7XG59LCBbXSkuam9pbignXFxuJyk7IiwidXVpZCI6ImEwNmM0YWI1LTYyYjctNDBjMi05N2RiLWI0MzY3ODgxNGRiYSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MywiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUzfSx7Im5hbWUiOiJLb3RsaW4iLCJ2YWx1ZSI6IltEQVRBXS5yZWR1Y2UoKGJ1ZmZlciwgZGF0YSkgPT4ge1xuICBjb25zdCBzdGF0ZSA9IGRhdGEuc3RhdGU7XG4gIGNvbnN0IGhlbHBlciA9IGRhdGEuaGVscGVyO1xuICBjb25zdCBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcblxuICBjb25zdCB0YWJsZVN0YXRlID0gc3RhdGUudGFibGVTdGF0ZTtcbiAgY29uc3QgY2FudmFzU3RhdGUgPSBzdGF0ZS5jYW52YXNTdGF0ZTtcblxuICBjb25zdCBjb252ZXJ0VHlwZU1hcCA9IHtcbiAgICBpbnQ6ICdJbnQnLFxuICAgIGxvbmc6ICdMb25nJyxcbiAgICBmbG9hdDogJ0Zsb2F0JyxcbiAgICBkb3VibGU6ICdEb3VibGUnLFxuICAgIGRlY2ltYWw6ICdCaWdEZWNpbWFsJyxcbiAgICBib29sZWFuOiAnQm9vbGVhbicsXG4gICAgc3RyaW5nOiAnU3RyaW5nJyxcbiAgICBsb2I6ICdTdHJpbmcnLFxuICAgIGRhdGU6ICdMb2NhbERhdGUnLFxuICAgIGRhdGVUaW1lOiAnTG9jYWxEYXRlVGltZScsXG4gICAgdGltZTogJ0xvY2FsVGltZScsXG4gIH07XG5cbiAgY29uc3QgZ2V0VHlwZSA9IG5hbWUgPT4ge1xuICAgIGNvbnN0IGRhdGFUeXBlID0gZGF0YVR5cGVzLmZpbmQoZGF0YVR5cGUgPT4gbmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZGF0YVR5cGUubmFtZS50b0xvd2VyQ2FzZSgpKSA9PT0gMCk7XG4gICAgcmV0dXJuIGRhdGFUeXBlID8gZGF0YVR5cGUudHlwZSA6ICdzdHJpbmcnO1xuICB9O1xuXG4gIGNvbnN0IGdldERlZmF1bHQgPSAodHlwZSkgPT4ge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnaW50JzpcbiAgICAgIGNhc2UgJ2xvbmcnOlxuICAgICAgICByZXR1cm4gMDtcbiAgICAgIGNhc2UgJ2Zsb2F0JzpcbiAgICAgICAgcmV0dXJuICcwLjBmJztcbiAgICAgIGNhc2UgJ2RvdWJsZSc6XG4gICAgICAgIHJldHVybiAnMC4wJztcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAnbG9iJzpcbiAgICAgICAgcmV0dXJuICdcIlwiJztcbiAgICAgIGNhc2UgJ2RlY2ltYWwnOlxuICAgICAgICByZXR1cm4gJ0JpZ0RlY2ltYWwuWkVSTyc7XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgIGNhc2UgJ3RpbWUnOlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0TmFtZUNhc2UgPSAobmFtZSwgbmFtZUNhc2UpID0+IHtcbiAgICBsZXQgY2hhbmdlTmFtZSA9IG5hbWU7XG4gICAgc3dpdGNoIChuYW1lQ2FzZSkge1xuICAgICAgY2FzZSAnY2FtZWxDYXNlJzpcbiAgICAgICAgY2hhbmdlTmFtZSA9IGhlbHBlci5jYW1lbENhc2UobmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncGFzY2FsQ2FzZSc6XG4gICAgICAgIGNoYW5nZU5hbWUgPSBoZWxwZXIucGFzY2FsQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzbmFrZUNhc2UnOlxuICAgICAgICBjaGFuZ2VOYW1lID0gaGVscGVyLnNuYWtlQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjaGFuZ2VOYW1lO1xuICB9O1xuXG4gIGNvbnN0IG9yZGVyQnlOYW1lQVNDID0gdGFibGVzID0+XG4gICAgdGFibGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IG5hbWVBID0gYS5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBuYW1lQiA9IGIubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKG5hbWVBIDwgbmFtZUIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIGlmIChuYW1lQSA+IG5hbWVCKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG5cbiAgZnVuY3Rpb24gZm9ybWF0VGFibGUodGFibGUpIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBnZXROYW1lQ2FzZSh0YWJsZS5uYW1lLCBjYW52YXNTdGF0ZS50YWJsZUNhc2UpO1xuICAgIGlmICh0YWJsZS5jb21tZW50LnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGJ1ZmZlci5wdXNoKGAvLyAke3RhYmxlLmNvbW1lbnR9YCk7XG4gICAgfVxuICAgIGJ1ZmZlci5wdXNoKGBjbGFzcyAke3RhYmxlTmFtZX0ge2ApO1xuICAgIHRhYmxlLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgZm9ybWF0Q29sdW1uKGNvbHVtbik7XG4gICAgfSk7XG4gICAgYnVmZmVyLnB1c2goYH1gKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1hdENvbHVtbihjb2x1bW4pIHtcbiAgICBjb25zdCBjb2x1bW5OYW1lID0gZ2V0TmFtZUNhc2UoY29sdW1uLm5hbWUsIGNhbnZhc1N0YXRlLmNvbHVtbkNhc2UpO1xuICAgIGNvbnN0IHR5cGVOYW1lID0gZ2V0VHlwZShjb2x1bW4uZGF0YVR5cGUpO1xuICAgIGlmIChjb2x1bW4uY29tbWVudC50cmltKCkgIT09ICcnKSB7XG4gICAgICBidWZmZXIucHVzaChgICAvLyAke2NvbHVtbi5jb21tZW50fWApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjb2x1bW4ub3B0aW9uLm5vdE51bGwgJiZcbiAgICAgIHR5cGVOYW1lICE9PSAnZGF0ZScgJiZcbiAgICAgIHR5cGVOYW1lICE9PSAnZGF0ZVRpbWUnICYmXG4gICAgICB0eXBlTmFtZSAhPT0gJ3RpbWUnXG4gICAgKSB7XG4gICAgICBidWZmZXIucHVzaChcbiAgICAgICAgYCAgdmFyICR7Y29sdW1uTmFtZX06ICR7Y29udmVydFR5cGVNYXBbdHlwZU5hbWVdfSA9ICR7Z2V0RGVmYXVsdCh0eXBlTmFtZSl9YFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLnB1c2goXG4gICAgICAgIGAgIHZhciAke2NvbHVtbk5hbWV9OiAke2NvbnZlcnRUeXBlTWFwW3R5cGVOYW1lXX0/ID0gbnVsbGBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgb3JkZXJCeU5hbWVBU0ModGFibGVTdGF0ZS50YWJsZXMpO1xuXG4gIHRhYmxlU3RhdGUudGFibGVzLmZvckVhY2godGFibGUgPT4ge1xuICAgIGZvcm1hdFRhYmxlKHRhYmxlKTtcbiAgICBidWZmZXIucHVzaCgnJyk7XG4gIH0pO1xuXG4gIHJldHVybiBidWZmZXI7XG59LCBbXSkuam9pbignXFxuJyk7IiwidXVpZCI6IjA3ZDZlNzYwLThhMTAtNDFhNy1hMDk4LTlhMzZkNjdmMjNiZSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MywiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUzfSx7Im5hbWUiOiJTY2FsYSIsInZhbHVlIjoiW0RBVEFdLnJlZHVjZSgoYnVmZmVyLCBkYXRhKSA9PiB7XG4gIGNvbnN0IHN0YXRlID0gZGF0YS5zdGF0ZTtcbiAgY29uc3QgaGVscGVyID0gZGF0YS5oZWxwZXI7XG4gIGNvbnN0IGRhdGFUeXBlcyA9IGRhdGEuZGF0YVR5cGVzO1xuXG4gIGNvbnN0IHRhYmxlU3RhdGUgPSBzdGF0ZS50YWJsZVN0YXRlO1xuICBjb25zdCBjYW52YXNTdGF0ZSA9IHN0YXRlLmNhbnZhc1N0YXRlO1xuXG4gIGNvbnN0IGNvbnZlcnRUeXBlTWFwID0ge1xuICAgIGludDogJ0ludCcsXG4gICAgbG9uZzogJ0xvbmcnLFxuICAgIGZsb2F0OiAnRmxvYXQnLFxuICAgIGRvdWJsZTogJ0RvdWJsZScsXG4gICAgZGVjaW1hbDogJ0JpZ0RlY2ltYWwnLFxuICAgIGJvb2xlYW46ICdCb29sZWFuJyxcbiAgICBzdHJpbmc6ICdTdHJpbmcnLFxuICAgIGxvYjogJ1N0cmluZycsXG4gICAgZGF0ZTogJ0xvY2FsRGF0ZScsXG4gICAgZGF0ZVRpbWU6ICdMb2NhbERhdGVUaW1lJyxcbiAgICB0aW1lOiAnTG9jYWxUaW1lJyxcbiAgfTtcblxuICBjb25zdCBnZXRUeXBlID0gbmFtZSA9PiB7XG4gICAgY29uc3QgZGF0YVR5cGUgPSBkYXRhVHlwZXMuZmluZChkYXRhVHlwZSA9PiBuYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihkYXRhVHlwZS5uYW1lLnRvTG93ZXJDYXNlKCkpID09PSAwKTtcbiAgICByZXR1cm4gZGF0YVR5cGUgPyBkYXRhVHlwZS50eXBlIDogJ3N0cmluZyc7XG4gIH07XG5cbiAgY29uc3QgZ2V0TmFtZUNhc2UgPSAobmFtZSwgbmFtZUNhc2UpID0+IHtcbiAgICBsZXQgY2hhbmdlTmFtZSA9IG5hbWU7XG4gICAgc3dpdGNoIChuYW1lQ2FzZSkge1xuICAgICAgY2FzZSAnY2FtZWxDYXNlJzpcbiAgICAgICAgY2hhbmdlTmFtZSA9IGhlbHBlci5jYW1lbENhc2UobmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncGFzY2FsQ2FzZSc6XG4gICAgICAgIGNoYW5nZU5hbWUgPSBoZWxwZXIucGFzY2FsQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzbmFrZUNhc2UnOlxuICAgICAgICBjaGFuZ2VOYW1lID0gaGVscGVyLnNuYWtlQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjaGFuZ2VOYW1lO1xuICB9O1xuXG4gIGNvbnN0IG9yZGVyQnlOYW1lQVNDID0gdGFibGVzID0+XG4gICAgdGFibGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IG5hbWVBID0gYS5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBuYW1lQiA9IGIubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKG5hbWVBIDwgbmFtZUIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIGlmIChuYW1lQSA+IG5hbWVCKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG5cbiAgZnVuY3Rpb24gZm9ybWF0VGFibGUodGFibGUpIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBnZXROYW1lQ2FzZSh0YWJsZS5uYW1lLCBjYW52YXNTdGF0ZS50YWJsZUNhc2UpO1xuICAgIGlmICh0YWJsZS5jb21tZW50LnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGJ1ZmZlci5wdXNoKGAvLyAke3RhYmxlLmNvbW1lbnR9YCk7XG4gICAgfVxuICAgIGJ1ZmZlci5wdXNoKGBARGF0YWApO1xuICAgIGJ1ZmZlci5wdXNoKGBjYXNlIGNsYXNzICR7dGFibGVOYW1lfShgKTtcbiAgICB0YWJsZS5jb2x1bW5zLmZvckVhY2goKGNvbHVtbiwgaWR4LCBhcnJheSkgPT4ge1xuICAgICAgdmFyIG5vdExhc3RFbGVtID0gdHJ1ZTtcbiAgICAgIGlmIChpZHggPT09IGFycmF5Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgbm90TGFzdEVsZW0gPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGZvcm1hdENvbHVtbihjb2x1bW4sIG5vdExhc3RFbGVtKTtcbiAgICB9KTtcbiAgICBidWZmZXIucHVzaChgKWApO1xuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0Q29sdW1uKGNvbHVtbiwgYWRkQ29tbWEpIHtcbiAgICBjb25zdCBjb2x1bW5OYW1lID0gZ2V0TmFtZUNhc2UoY29sdW1uLm5hbWUsIGNhbnZhc1N0YXRlLmNvbHVtbkNhc2UpO1xuICAgIGNvbnN0IHR5cGVOYW1lID0gZ2V0VHlwZShjb2x1bW4uZGF0YVR5cGUpO1xuICAgIGlmIChjb2x1bW4uY29tbWVudC50cmltKCkgIT09ICcnKSB7XG4gICAgICBidWZmZXIucHVzaChgIC8vICR7Y29sdW1uLmNvbW1lbnR9YCk7XG4gICAgfVxuICBcbiAgICBidWZmZXIucHVzaChcbiAgICAgIGAgJHtjb2x1bW5OYW1lfTogJHtjb252ZXJ0VHlwZU1hcFt0eXBlTmFtZV19JHthZGRDb21tYSA/ICcsJyA6ICcnfWBcbiAgICApO1xuICB9XG5cbiAgb3JkZXJCeU5hbWVBU0ModGFibGVTdGF0ZS50YWJsZXMpO1xuXG4gIHRhYmxlU3RhdGUudGFibGVzLmZvckVhY2godGFibGUgPT4ge1xuICAgIGZvcm1hdFRhYmxlKHRhYmxlKTtcbiAgICBidWZmZXIucHVzaCgnJyk7XG4gIH0pO1xuXG4gIHJldHVybiBidWZmZXI7XG59LCBbXSkuam9pbignXFxuJyk7IiwidXVpZCI6IjMyZDY1NDhhLWM1YWMtNDUyYi1iN2VjLWU1Yjg4NmI0YTI5ZSIsInVwZGF0ZWRBdCI6MTY4NTQ3OTIzMjU1MiwiY3JlYXRlZEF0IjoxNjg1NDc5MjMyNTUyfSx7Im5hbWUiOiJUeXBlc2NyaXB0IiwidmFsdWUiOiJbREFUQV0ucmVkdWNlKChidWZmZXIsIGRhdGEpID0+IHtcbiAgY29uc3Qgc3RhdGUgPSBkYXRhLnN0YXRlO1xuICBjb25zdCBoZWxwZXIgPSBkYXRhLmhlbHBlcjtcbiAgY29uc3QgZGF0YVR5cGVzID0gZGF0YS5kYXRhVHlwZXM7XG5cbiAgY29uc3QgdGFibGVTdGF0ZSA9IHN0YXRlLnRhYmxlU3RhdGU7XG4gIGNvbnN0IGNhbnZhc1N0YXRlID0gc3RhdGUuY2FudmFzU3RhdGU7XG5cbiAgY29uc3QgY29udmVydFR5cGVNYXAgPSB7XG4gICAgaW50OiAnbnVtYmVyJyxcbiAgICBsb25nOiAnbnVtYmVyJyxcbiAgICBmbG9hdDogJ251bWJlcicsXG4gICAgZG91YmxlOiAnbnVtYmVyJyxcbiAgICBkZWNpbWFsOiAnbnVtYmVyJyxcbiAgICBib29sZWFuOiAnYm9vbGVhbicsXG4gICAgc3RyaW5nOiAnc3RyaW5nJyxcbiAgICBsb2I6ICdzdHJpbmcnLFxuICAgIGRhdGU6ICdzdHJpbmcnLFxuICAgIGRhdGVUaW1lOiAnc3RyaW5nJyxcbiAgICB0aW1lOiAnc3RyaW5nJyxcbiAgfTtcblxuICBjb25zdCBnZXRUeXBlID0gbmFtZSA9PiB7XG4gICAgY29uc3QgZGF0YVR5cGUgPSBkYXRhVHlwZXMuZmluZChkYXRhVHlwZSA9PiBuYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihkYXRhVHlwZS5uYW1lLnRvTG93ZXJDYXNlKCkpID09PSAwKTtcbiAgICByZXR1cm4gZGF0YVR5cGUgPyBkYXRhVHlwZS50eXBlIDogJ3N0cmluZyc7XG4gIH07XG5cbiAgY29uc3QgZ2V0TmFtZUNhc2UgPSAobmFtZSwgbmFtZUNhc2UpID0+IHtcbiAgICBsZXQgY2hhbmdlTmFtZSA9IG5hbWU7XG4gICAgc3dpdGNoIChuYW1lQ2FzZSkge1xuICAgICAgY2FzZSAnY2FtZWxDYXNlJzpcbiAgICAgICAgY2hhbmdlTmFtZSA9IGhlbHBlci5jYW1lbENhc2UobmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncGFzY2FsQ2FzZSc6XG4gICAgICAgIGNoYW5nZU5hbWUgPSBoZWxwZXIucGFzY2FsQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzbmFrZUNhc2UnOlxuICAgICAgICBjaGFuZ2VOYW1lID0gaGVscGVyLnNuYWtlQ2FzZShuYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjaGFuZ2VOYW1lO1xuICB9O1xuXG4gIGNvbnN0IG9yZGVyQnlOYW1lQVNDID0gdGFibGVzID0+XG4gICAgdGFibGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IG5hbWVBID0gYS5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBuYW1lQiA9IGIubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKG5hbWVBIDwgbmFtZUIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIGlmIChuYW1lQSA+IG5hbWVCKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG5cbiAgZnVuY3Rpb24gZm9ybWF0VGFibGUodGFibGUpIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBnZXROYW1lQ2FzZSh0YWJsZS5uYW1lLCBjYW52YXNTdGF0ZS50YWJsZUNhc2UpO1xuICAgIGlmICh0YWJsZS5jb21tZW50LnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGJ1ZmZlci5wdXNoKGAvLyAke3RhYmxlLmNvbW1lbnR9YCk7XG4gICAgfVxuICAgIGJ1ZmZlci5wdXNoKGBleHBvcnQgaW50ZXJmYWNlICR7dGFibGVOYW1lfSB7YCk7XG4gICAgdGFibGUuY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICBmb3JtYXRDb2x1bW4oY29sdW1uKTtcbiAgICB9KTtcbiAgICBidWZmZXIucHVzaChgfWApO1xuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0Q29sdW1uKGNvbHVtbikge1xuICAgIGNvbnN0IGNvbHVtbk5hbWUgPSBnZXROYW1lQ2FzZShjb2x1bW4ubmFtZSwgY2FudmFzU3RhdGUuY29sdW1uQ2FzZSk7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBnZXRUeXBlKGNvbHVtbi5kYXRhVHlwZSk7XG4gICAgaWYgKGNvbHVtbi5jb21tZW50LnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGJ1ZmZlci5wdXNoKGAgIC8vICR7Y29sdW1uLmNvbW1lbnR9YCk7XG4gICAgfVxuICAgIGJ1ZmZlci5wdXNoKFxuICAgICAgYCAgJHtjb2x1bW5OYW1lfTogJHtjb252ZXJ0VHlwZU1hcFt0eXBlTmFtZV19JHtcbiAgICAgICAgY29sdW1uLm9wdGlvbi5ub3ROdWxsID8gJycgOiAnIHwgbnVsbCdcbiAgICAgIH07YFxuICAgICk7XG4gIH1cblxuICBvcmRlckJ5TmFtZUFTQyh0YWJsZVN0YXRlLnRhYmxlcyk7XG5cbiAgdGFibGVTdGF0ZS50YWJsZXMuZm9yRWFjaCh0YWJsZSA9PiB7XG4gICAgZm9ybWF0VGFibGUodGFibGUpO1xuICAgIGJ1ZmZlci5wdXNoKCcnKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGJ1ZmZlcjtcbn0sIFtdKS5qb2luKCdcXG4nKTsiLCJ1dWlkIjoiOTAwMjc1MmUtMmI5YS00MGI3LTlmNWUtYmRmNGY1ZDg2ODBmIiwidXBkYXRlZEF0IjoxNjg1NDc5MjMyNTUyLCJjcmVhdGVkQXQiOjE2ODU0NzkyMzI1NTJ9XX0="
}
},
"table": {
"tables": [],
"indexes": []
},
"memo": {
"memos": []
},
"relationship": {
"relationships": []
}
}