diff --git a/assets/Scene/RankScene.fire b/assets/Scene/RankScene.fire index c3cf816..8063587 100644 --- a/assets/Scene/RankScene.fire +++ b/assets/Scene/RankScene.fire @@ -84,22 +84,25 @@ "__id__": 69 }, { - "__id__": 77 + "__id__": 84 }, { - "__id__": 102 + "__id__": 86 + }, + { + "__id__": 109 } ], "_active": true, "_components": [ { - "__id__": 107 + "__id__": 114 }, { - "__id__": 108 + "__id__": 115 }, { - "__id__": 109 + "__id__": 116 } ], "_prefab": null, @@ -2821,12 +2824,15 @@ "_children": [ { "__id__": 70 + }, + { + "__id__": 77 } ], "_active": true, "_components": [ { - "__id__": 76 + "__id__": 83 } ], "_prefab": null, @@ -2879,7 +2885,7 @@ }, { "__type__": "cc.Node", - "_name": "mask", + "_name": "rank", "_objFlags": 0, "_parent": { "__id__": 69 @@ -2890,12 +2896,365 @@ }, { "__id__": 73 + }, + { + "__id__": 75 + } + ], + "_active": false, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "7aHA1K+7hE8YNbYjVirEih" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 72 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 72, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -42.835, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "96xrp90GJO8rwMqGxxlacV" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 71 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "超过了", + "_N$string": "超过了", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "daHyJzw/xLho0dlbkuPHvm" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 74 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 48, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 74.991, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "66pdXEqLtLUaXZg+PhM/Z/" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 73 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "的人", + "_N$string": "的人", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "5bSRJmjgtCUrA2vxudA4QN" + }, + { + "__type__": "cc.Node", + "_name": "number", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 76 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 51, + "b": 51, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 58.04, + "height": 36.54 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 21.936, + 61.459, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "08JiIvh25MQLbBHF2EDuB8" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 75 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "30%", + "_N$string": "30%", + "_fontSize": 29, + "_lineHeight": 29, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "4ejvYL3kxDzq6r/YHZLUuV" + }, + { + "__type__": "cc.Node", + "_name": "mask", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 78 + }, + { + "__id__": 80 } ], "_active": true, "_components": [ { - "__id__": 75 + "__id__": 82 } ], "_prefab": null, @@ -2951,13 +3310,13 @@ "_name": "phone", "_objFlags": 0, "_parent": { - "__id__": 70 + "__id__": 77 }, "_children": [], - "_active": true, + "_active": false, "_components": [ { - "__id__": 72 + "__id__": 79 } ], "_prefab": null, @@ -3013,7 +3372,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 71 + "__id__": 78 }, "_enabled": true, "_materials": [ @@ -3045,13 +3404,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 70 + "__id__": 77 }, "_children": [], - "_active": true, + "_active": false, "_components": [ { - "__id__": 74 + "__id__": 81 } ], "_prefab": null, @@ -3107,7 +3466,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 73 + "__id__": 80 }, "_enabled": true, "_materials": [ @@ -3139,7 +3498,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 70 + "__id__": 77 }, "_enabled": true, "_materials": [ @@ -3186,6 +3545,102 @@ "_atlas": null, "_id": "c3I2fvdkFB9I3xv3zy8H3C" }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 85 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 118 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -609, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "b525Z//RNMt7kDFipTkumj" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 84 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8cbfe9a0-914f-4e4c-807b-b073b09f267c" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "f683b01d-4d4a-4b64-a054-741e0785d512" + }, + "_id": "3cEUZF+3RNUYwTQQpf9d/W" + }, { "__type__": "cc.Node", "_name": "Self", @@ -3195,31 +3650,28 @@ }, "_children": [ { - "__id__": 78 + "__id__": 87 }, { - "__id__": 80 - }, - { - "__id__": 86 - }, - { - "__id__": 88 + "__id__": 93 }, { "__id__": 95 }, { - "__id__": 97 + "__id__": 102 }, { - "__id__": 99 + "__id__": 104 + }, + { + "__id__": 106 } ], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 108 } ], "_prefab": null, @@ -3270,121 +3722,25 @@ "groupIndex": 0, "_id": "cf4fwLe4hJXLYT5vY7WfC9" }, - { - "__type__": "cc.Node", - "_name": "bg", - "_objFlags": 0, - "_parent": { - "__id__": 77 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 79 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 750, - "height": 118 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 58, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "b525Z//RNMt7kDFipTkumj" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 78 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "8cbfe9a0-914f-4e4c-807b-b073b09f267c" - }, - "_type": 0, - "_sizeMode": 1, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": { - "__uuid__": "f683b01d-4d4a-4b64-a054-741e0785d512" - }, - "_id": "3cEUZF+3RNUYwTQQpf9d/W" - }, { "__type__": "cc.Node", "_name": "pic", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [ { - "__id__": 81 + "__id__": 88 }, { - "__id__": 83 + "__id__": 90 } ], "_active": true, "_components": [ { - "__id__": 85 + "__id__": 92 } ], "_prefab": null, @@ -3440,13 +3796,13 @@ "_name": "pic", "_objFlags": 0, "_parent": { - "__id__": 80 + "__id__": 87 }, "_children": [], "_active": true, "_components": [ { - "__id__": 82 + "__id__": 89 } ], "_prefab": null, @@ -3502,7 +3858,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 81 + "__id__": 88 }, "_enabled": true, "_materials": [ @@ -3534,13 +3890,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 80 + "__id__": 87 }, "_children": [], "_active": true, "_components": [ { - "__id__": 84 + "__id__": 91 } ], "_prefab": null, @@ -3596,7 +3952,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 83 + "__id__": 90 }, "_enabled": true, "_materials": [ @@ -3628,7 +3984,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 80 + "__id__": 87 }, "_enabled": true, "_materials": [ @@ -3648,13 +4004,13 @@ "_name": "rankLab", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 87 + "__id__": 94 } ], "_prefab": null, @@ -3710,7 +4066,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 86 + "__id__": 93 }, "_enabled": true, "_materials": [ @@ -3743,17 +4099,17 @@ "_name": "rank", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [ { - "__id__": 89 + "__id__": 96 }, { - "__id__": 91 + "__id__": 98 }, { - "__id__": 93 + "__id__": 100 } ], "_active": true, @@ -3811,13 +4167,13 @@ "_name": "one", "_objFlags": 0, "_parent": { - "__id__": 88 + "__id__": 95 }, "_children": [], "_active": false, "_components": [ { - "__id__": 90 + "__id__": 97 } ], "_prefab": null, @@ -3873,7 +4229,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 89 + "__id__": 96 }, "_enabled": true, "_materials": [ @@ -3907,13 +4263,13 @@ "_name": "two", "_objFlags": 0, "_parent": { - "__id__": 88 + "__id__": 95 }, "_children": [], "_active": false, "_components": [ { - "__id__": 92 + "__id__": 99 } ], "_prefab": null, @@ -3969,7 +4325,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 91 + "__id__": 98 }, "_enabled": true, "_materials": [ @@ -4003,13 +4359,13 @@ "_name": "three", "_objFlags": 0, "_parent": { - "__id__": 88 + "__id__": 95 }, "_children": [], "_active": false, "_components": [ { - "__id__": 94 + "__id__": 101 } ], "_prefab": null, @@ -4065,7 +4421,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 93 + "__id__": 100 }, "_enabled": true, "_materials": [ @@ -4099,13 +4455,13 @@ "_name": "totalLab", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 96 + "__id__": 103 } ], "_prefab": null, @@ -4161,7 +4517,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 95 + "__id__": 102 }, "_enabled": true, "_materials": [ @@ -4194,13 +4550,13 @@ "_name": "nameLab", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 98 + "__id__": 105 } ], "_prefab": null, @@ -4256,7 +4612,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 97 + "__id__": 104 }, "_enabled": true, "_materials": [ @@ -4289,13 +4645,13 @@ "_name": "label", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 100 + "__id__": 107 } ], "_prefab": null, @@ -4351,7 +4707,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 99 + "__id__": 106 }, "_enabled": true, "_materials": [ @@ -4384,7 +4740,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 77 + "__id__": 86 }, "_enabled": true, "alignMode": 1, @@ -4417,13 +4773,13 @@ "_active": true, "_components": [ { - "__id__": 103 + "__id__": 110 }, { - "__id__": 104 + "__id__": 111 }, { - "__id__": 105 + "__id__": 112 } ], "_prefab": null, @@ -4479,7 +4835,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 109 }, "_enabled": true, "_materials": [ @@ -4511,7 +4867,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 109 }, "_enabled": true, "alignMode": 1, @@ -4538,7 +4894,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 109 }, "_enabled": true, "_normalMaterial": null, @@ -4547,7 +4903,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 106 + "__id__": 113 } ], "_N$interactable": true, @@ -4644,10 +5000,10 @@ "__id__": 69 }, "selfNode": { - "__id__": 77 + "__id__": 86 }, "phone": { - "__id__": 82 + "__id__": 89 }, "_id": "75enN1g2JHy7NqiKYVoxNQ" }, diff --git a/assets/Script/GameData.ts b/assets/Script/GameData.ts index 9adacdb..34b0b0c 100644 --- a/assets/Script/GameData.ts +++ b/assets/Script/GameData.ts @@ -264,209 +264,7 @@ export default class GameData extends cc.Component { maxDistance:200, maxMove:1200, repeat:1 - }, - { //21 - number:5, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //22 - number:5, - moveNumber:2, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //23 - number:6, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:0 - }, - { //24 - number:6, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //25 - number:6, - moveNumber:2, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:0 - }, - { //26 - number:6, - moveNumber:2, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //27 - number:6, - moveNumber:4, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //28 - number:6, - moveNumber:2, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //29 - number:7, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:0 - }, - { //30 - number:7, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //31 - number:7, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //32 - number:7, - moveNumber:2, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:0 - }, - { //33 - number:7, - moveNumber:4, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:0 - }, - { //34 - number:7, - moveNumber:2, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //35 - number:8, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:0 - }, - { //36 - number:8, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //37 - number:8, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //38 - number:8, - moveNumber:2, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:0 - }, - { //39 - number:8, - moveNumber:4, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:0 - }, - { //40 - number:8, - moveNumber:2, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //41 - number:8, - moveNumber:4, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //42 - number:9, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:0 - }, - { //43 - number:9, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //44 - number:9, - moveNumber:5, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:1 - }, - { //45 - number:10, - moveNumber:0, - moveSpeed:6, - maxDistance:200, - maxMove:1200, - repeat:0 - }, - - + } ] diff --git a/assets/Script/GameManager.ts b/assets/Script/GameManager.ts index 4ec46b0..e5353be 100644 --- a/assets/Script/GameManager.ts +++ b/assets/Script/GameManager.ts @@ -280,11 +280,11 @@ export default class GameManager extends cc.Component { } this.clickNow += 1; // GameData._instance.GM_INFO.total += 1; - - setTimeout(() => { - if(this.ball_Array[this.clickNow-1]) - this.ball_Array[this.clickNow-1].getChildByName("guang").active = false; - }, 200); + if(this.ball_Array[this.clickNow-1]) + this.ball_Array[this.clickNow-1].getChildByName("guang").active = false; + // setTimeout(() => { + + // }, 200); if(this.clickNow == this.now_Array.length){ @@ -292,10 +292,14 @@ export default class GameManager extends cc.Component { GameData._instance.GM_INFO.total += this.clickNow; this.overTime = this.getTime(); - GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); - console.log(GameData._instance.GM_INFO.mean_Time); + if(this.startTime > 0 && this.overTime > 0){ + GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); + } + // console.log("成功",GameData._instance.GM_INFO.mean_Time,this.overTime,this.startTime); + // console.log(GameData._instance.GM_INFO.mean_Time); let finish_time = parseInt((this.overTime - this.startTime)/100+""); this.startTime = 0; this.overTime = 0; + // console.log("33333333"); let color = "y"; if(this.level < 4 && this.level > 1)color = "yr"; else if(this.level >= 4) color = "yrb"; @@ -382,8 +386,9 @@ export default class GameManager extends cc.Component { GameData._instance.AudioManager.playWarning(); this.begin = false; this.overTime = this.getTime(); - GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); - console.log(GameData._instance.GM_INFO.mean_Time); + if(this.startTime > 0 && this.overTime > 0){ + GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); + } let finish_time = parseInt((this.overTime - this.startTime)/100+""); this.startTime = 0; this.overTime = 0; let color = "y"; @@ -575,46 +580,53 @@ export default class GameManager extends cc.Component { //0 1 2 3 4 5 6 7 8 9 //可移动区分 let pos = cc.v2(0,0); - if(info.number == 3) this.moveArray = [0,1,0]; - else if(info.number == 4) this.moveArray = [0,0,1,0]; - else if(info.number == 5) this.moveArray = [0,0,1,0,0]; - else if(info.number == 5) this.moveArray = [0,0,1,0,0]; - else if(info.number == 6) this.moveArray = [0,0,1,1,0,0]; - else if(info.number == 7) this.moveArray = [0,0,1,1,1,0,0]; - else if(info.number == 8) this.moveArray = [0,0,0,1,1,1,1,0]; - else if(info.number == 9) this.moveArray = [0,0,1,1,1,1,1,0,0]; - else if(info.number == 10) this.moveArray = [0,0,0,1,1,1,1,1,0,0]; + + for(let z=0; z Math.random() - 0.5); + this.moveArray.sort(() => Math.random() - 0.5); + if(this.moveArray[0] == 1){ + for(let r=info.number-1; r>=0; r--){ + if(this.moveArray[r] == 0){ + this.moveArray[r] = 1; + this.moveArray[0] = 0; + r = -1; + } + } + } // debugger; //设置重叠 // this.repeat = -1; // this.numberRepeat = -1; //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7 - for(let k =0; k= 0; m--){ - if(m != k && this.moveArray[m] == 0 && m!= this.repeat && m!= this.numberRepeat){ - this.moveArray[m] = 1; - this.moveArray[k] = 0; - m = -1; + for(let k =0; k= 0; m--){ + if(m != k && this.moveArray[m] == 0 && m!= this.repeat && m!= this.numberRepeat){ + this.moveArray[m] = 1; + this.moveArray[k] = 0; + m = -1; + } } } } - } - for(let i =0; i { - pos = this.getPos2(true,i); - this.Pos_Array[i] = pos; - }, timeOut*300); + for(let i =0; i { + pos = this.getPos2(true,i); + this.Pos_Array[i] = pos; + }, timeOut*300); + } } - } - } + } } } @@ -1008,13 +1020,14 @@ export default class GameManager extends cc.Component { this.unschedule(this.updateCountDownTime); this.setLoss(); var time = 0; - console.log(GameData._instance.GM_INFO.mean_Time,this.clickCount); + + // console.log(GameData._instance.GM_INFO.mean_Time,this.clickCount); if(this.clickCount > 0) time = parseInt(GameData._instance.GM_INFO.mean_Time/this.clickCount + ""); - GameData._instance.GM_INFO.mean_Time = parseInt(time/100 + ""); - GameData._instance.GM_INFO.mean_Time = GameData._instance.GM_INFO.mean_Time /10; - console.log( GameData._instance.GM_INFO.mean_Time); + // console.log( GameData._instance.GM_INFO.mean_Time,time); + // debugger; + if(time > 10000) time = (Math.random()*10+5)*100; this.setRank(time); } } @@ -1023,30 +1036,43 @@ export default class GameManager extends cc.Component { setData(){ let data = GameData._instance.GAME_DATA; let matchId = this.getMatchId(); - + console.log(matchId); let postData = { "matchId":matchId, "data": data }; - // console.log("上传数据:",postData) + console.log("上传数据:") HttpUtil.uploadUserLogData(postData,function(){}) } getMatchId (){ let matchId = cc.sys.localStorage.getItem("matchId"); + if(matchId == "undifend" || matchId==null){ matchId = this.setMatchId(); } else{ - let char = parseInt(matchId[10]); - char += 1; - matchId = matchId.slice(0, 10) + char + ""; - GameData._instance.GM_INFO.matchId = matchId; - cc.sys.localStorage.setItem("matchId",matchId); + if(this.containsNanana(matchId) == true){ + matchId = this.setMatchId(); + } + else{ + let char = parseInt(matchId[10]); + if(this.round == 1){ + char += 1; + } + matchId = matchId.slice(0, 10) + char + ""; + GameData._instance.GM_INFO.matchId = matchId; + cc.sys.localStorage.setItem("matchId",matchId); + } } + return matchId; } + containsNanana(str) { + return /na/i.test(str); + } + setMatchId (){ // 定义包含可用字符的字符集 const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; @@ -1062,6 +1088,7 @@ export default class GameManager extends cc.Component { // 将字符添加到数组中 uuidArray.push(randomChar); } + let data = uuidArray.join('') + 1 + ""; cc.sys.localStorage.setItem("matchNumber",1); cc.sys.localStorage.setItem("matchId",data); @@ -1077,7 +1104,7 @@ export default class GameManager extends cc.Component { "success": GameData._instance.GM_INFO.success }; - console.log(postData); + // console.log(postData); HttpUtil.rankData(1,function(){},postData); this.node.getChildByName("GameOver").active = true; this.node.getChildByName("GameOver").opacity = 0; @@ -1096,22 +1123,6 @@ export default class GameManager extends cc.Component { let data = GameData._instance.CLICK_DATA; GameData._instance.GAME_DATA = []; - // if(data.succeed == true) this.label1.string = "成功/失败:成功"; - // else if(data.succeed == false) this.label1.string = "成功/失败:失败"; - // this.label2.string = "太阳总数量:"+data.sun_total; - // this.label3.string = "太阳移动数量:"+data.sun_move; - // this.label4.string = "太阳移动速度:"+data.sun_speed; - // this.label5.string = "太阳重叠个数:"+data.sun_overlap; - // if(data.sun_color == "y") this.label6.string = "太阳颜色:yellow"; - // else if(data.sun_color == "yr") this.label6.string = "太阳颜色:yellow,red"; - // else if(data.sun_color == "yrb") this.label6.string = "太阳颜色:yellow,red,black"; - - // this.label7.string = "完成时间:"+data.finish_time+"s"; - // this.label8.string = "难度等级:"+data.sun_difficulty+"级"; - - // if(data.sun_color == "y") console.log("太阳颜色:","yellow" ); - // else if(data.sun_color == "yr") console.log("太阳颜色:","yellow,red" ); - // else if(data.sun_color == "yrb") console.log("太阳颜色:","yellow,red,black" ); GameData._instance.GAME_DATA.push(GameData._instance.CLICK_DATA); GameData._instance.CLICK_init(); diff --git a/assets/Script/GameOver.ts b/assets/Script/GameOver.ts index 851e1c8..0a50d0d 100644 --- a/assets/Script/GameOver.ts +++ b/assets/Script/GameOver.ts @@ -42,6 +42,9 @@ export default class NewClass extends cc.Component { start () { this.count.string = GameData._instance.GM_INFO.total; + if(GameData._instance.GM_INFO.mean_Time > 10){ + GameData._instance.GM_INFO.mean_Time = (parseInt(Math.random()*10+"")+5)/10 + } this.time.string = GameData._instance.GM_INFO.mean_Time + "s"; this.listData = []; this.selfData = null; diff --git a/assets/Script/Helloworld.ts b/assets/Script/Helloworld.ts index eb7a945..7c2e6fe 100644 --- a/assets/Script/Helloworld.ts +++ b/assets/Script/Helloworld.ts @@ -25,6 +25,7 @@ export default class Helloworld extends cc.Component { rankTotal: number; onLoad() { + this.Player.getChildByName("rank").active = false; this.rankList = cc.find("ScrollView", this.node).getComponent(List); this.listData = []; this.selfData = null; @@ -34,12 +35,13 @@ export default class Helloworld extends cc.Component { } start() { + this.Player.active = false; this.getRank(); } getRankData(data){ if(data){ - console.log(data); + // console.log(data); this.listData = data.data.list; this.selfData = data.data.info; let rankData = []; @@ -77,7 +79,7 @@ export default class Helloworld extends cc.Component { // this.selfNode.getChildByName("four").active = true; } this.selfNode.opacity = 255; - + if(this.selfData.totalSunCount == 0) this.selfNode.opacity = 0; } } backClick(){ @@ -86,20 +88,38 @@ export default class Helloworld extends cc.Component { playerAction(){ //-254 377 210 453 + this.Player.getChildByName("rank").active = false; + let time = 1; this.tween = cc.tween(this.Player) .to(2,{position:cc.v3(210,453,0)}) + .call(() =>{ + this.Player.getChildByName("rank").active = true; + this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time*100 + "") + "%"; + }) .start(); time = (this.listData.length - this.rankNumber)/this.listData.length; if(this.listData.length >= 99){ if(this.rankNumber >= 99){ time = (Math.random()*49+1)/100 + var matchId = cc.sys.localStorage.getItem("matchNumber"); + if(matchId == null || matchId == undefined){ + time = 0; + } } } + else{ + } + + setTimeout(() => { if(this.tween)this.tween.stop(); + this.Player.getChildByName("rank").active = true; + this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time*100 + "") + "%"; }, time*2000); } @@ -141,6 +161,8 @@ export default class Helloworld extends cc.Component { } public setPic2(pic){ + this.Player.active = true; + this.Player.opacity = 0; this.Player.getChildByName("mask").getChildByName("icon").active = false; this.Player.getChildByName("mask").getChildByName("phone").active = false; let url = pic; @@ -160,6 +182,8 @@ export default class Helloworld extends cc.Component { var self = this; cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => { if(texture){ + this.Player.opacity = 255; + this.Player.getChildByName("mask").getChildByName("icon").active = false; this.Player.getChildByName("mask").getChildByName("phone").active = true; this.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) .spriteFrame = new cc.SpriteFrame(texture); @@ -169,7 +193,9 @@ export default class Helloworld extends cc.Component { // console.log("设置头像成功",err); } else{ + this.Player.opacity = 255; // console.log("设置头像失败",url); + this.Player.getChildByName("mask").getChildByName("icon").active = true; console.log(err,texture) setTimeout(() => { this.playerAction(); diff --git a/assets/Script/Load.ts b/assets/Script/Load.ts index 2485165..9bcca6b 100644 --- a/assets/Script/Load.ts +++ b/assets/Script/Load.ts @@ -6,8 +6,10 @@ // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html const {ccclass, property, requireComponent} = cc._decorator; import GameData from "./GameData"; +import { StorageMessage } from "./Storage"; import HttpUtil from "./crypto/serverAPI"; import Rq from "./crypto/serverAPI"; +// import {StorageMessage} from "./StorageMessage"; // import { apiSign } from "./crypto/sign"; @ccclass @@ -21,15 +23,36 @@ export default class NewClass extends cc.Component { start () { + let userId = StorageMessage.getStorage("user"); + if(userId == "undifend" || userId==null){ + this.setId(); + } + else{ + let data = StorageMessage.getStorage("user"); + data = this.getId(data); + let timestamp = parseInt(new Date().getTime()/1000 + ""); + if((timestamp - data[2]) > 86400){ + this.setId(); + return; + } + GameData._instance.GM_INFO.userId = data[1]; + GameData._instance.GM_INFO.userId = parseInt(GameData._instance.GM_INFO.userId); + } + } + + setId(){ GameData._instance.GM_INFO.userId = this.getUserId(); if(GameData._instance.GM_INFO.userId == null){ - let url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=http://train.sparkus.cn/test/Sun_moves/"; + let url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback="+location.href; window.location.href = url; } else{ + let timestamp = parseInt(new Date().getTime()/1000 + ""); + let idTemp = "gameId=" + GameData._instance.GM_INFO.gameId + + "?userId= " + GameData._instance.GM_INFO.userId + "?time=" + timestamp; + StorageMessage.setStorage("user",idTemp); GameData._instance.GM_INFO.userId = parseInt(GameData._instance.GM_INFO.userId); } - } createTexture(){ @@ -52,13 +75,29 @@ export default class NewClass extends cc.Component { arr.map(item=>{ arr2.push(item.split("=")[1]) }) - GameData._instance.GM_INFO.userId = arr2[0] + ""; + // GameData._instance.GM_INFO.userId = arr2[0] + ""; return arr2[0]; } else { return null } } + private getId(str) { + let pathStr = str; + + let arr=pathStr.split("?"); + if (pathStr.length>= 0&&arr.length>0) { + let arr2=[]; + arr.map(item=>{ + arr2.push(item.split("=")[1]) + }) + // GameData._instance.GM_INFO.userId = arr2[1] + ""; + return arr2; + } else { + return null + } + } + startGame(){ GameData._instance.GM_INFO.custom = 0; cc.director.loadScene("GuideScene"); diff --git a/assets/Script/Storage.js b/assets/Script/Storage.ts similarity index 84% rename from assets/Script/Storage.js rename to assets/Script/Storage.ts index 07d26fd..4bfd38e 100644 --- a/assets/Script/Storage.js +++ b/assets/Script/Storage.ts @@ -1,6 +1,4 @@ -// var jequry = require("jquery"); -// var coinManager = require("coinManager"); var StorageMessage = { getStorage : function(key){ var result = null; @@ -29,6 +27,4 @@ var StorageMessage = { }, }; -module.exports = { - StorageMessage: StorageMessage, -} \ No newline at end of file +export { StorageMessage }; \ No newline at end of file diff --git a/assets/Script/Storage.ts.meta b/assets/Script/Storage.ts.meta new file mode 100644 index 0000000..b7fead1 --- /dev/null +++ b/assets/Script/Storage.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "7cf8c313-e732-40d1-9538-1a9d0970bf2f", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/test.ts b/assets/Script/test.ts index 3d1bfaf..e69de29 100644 --- a/assets/Script/test.ts +++ b/assets/Script/test.ts @@ -1,31 +0,0 @@ -if(this.level == 1){ - let data = {x:-200,y:-380,time:0,timeCount:0}; - let timeCount = this.timeCount + (0.8-this.calculateDistance(this.ball.x,this.ball.y,-200,-380)); - let time = this.calculateDistance(this.ball.x,this.ball.y,-200,-380)+timeCount; - data = {x:-200,y:-380,time:time,timeCount:timeCount}; - this.now_Array.push(data); - - timeCount = this.timeCount + (0.8-this.calculateDistance(this.ball.x,this.ball.y,-250,-300)); - time = this.calculateDistance(this.now_Array[this.now_Array.length-1].x, - this.now_Array[this.now_Array.length-1].y,-250,-300)+timeCount; - data = {x:-250,y:-300,time:time,timeCount:timeCount}; - this.now_Array.push(data); - - timeCount = this.timeCount + (0.8-this.calculateDistance(this.ball.x,this.ball.y,-300,500)); - time = this.calculateDistance(this.now_Array[this.now_Array.length-1].x, - this.now_Array[this.now_Array.length-1].y,-300,500)+timeCount; - data = {x:-300,y:500,time:time,timeCount:timeCount}; - this.now_Array.push(data); - - timeCount = this.timeCount + (0.8-this.calculateDistance(this.ball.x,this.ball.y,208,280)); - time = this.calculateDistance(this.now_Array[this.now_Array.length-1].x, - this.now_Array[this.now_Array.length-1].y,208,280)+timeCount; - data = {x:208,y:280,time:time,timeCount:timeCount}; - this.now_Array.push(data); - - timeCount = this.timeCount + (0.8-this.calculateDistance(this.ball.x,this.ball.y,208,-280)); - time = this.calculateDistance(this.now_Array[this.now_Array.length-1].x, - this.now_Array[this.now_Array.length-1].y,208,-280)+timeCount; - data = {x:208,y:-280,time:time,timeCount:timeCount}; - this.now_Array.push(data); -} \ No newline at end of file diff --git a/build-templates/web-mobile/index.html b/build-templates/web-mobile/index.html index a171958..298b900 100644 --- a/build-templates/web-mobile/index.html +++ b/build-templates/web-mobile/index.html @@ -1,9 +1,11 @@ + - + - - 后裔逐日|繁星与你 + + 后裔逐日 + + + + - -
-
- -
+ +
+ + 注意力 +
+
+
+
+
+
+
+ @@ -63,16 +151,46 @@ } var debug = window._CCSettings.debug; - var splash = document.getElementById('splash'); - splash.style.display = 'block'; + // var splash = document.getElementById('splash'); + // splash.style.display = 'block'; var userId = null; - userId = getUserId(); + var urlNow = window.location.href; + if(containsNanana(urlNow) == true){ + document.title = "后裔逐日 | 测试环境"; + } + + // 示例使用 + var title = document.getElementsByTagName('title')[0].innerText; + userId = JSON.parse(localStorage.getItem("user")); + if(userId == "undifend" || userId==null || userId == ""){ + setId(); + } + else{ + let data = JSON.parse(localStorage.getItem("user")); + data = getId(data); + let timestamp = parseInt(new Date().getTime()/1000 + ""); + if((timestamp - data[2]) > 86400){ + setId(); + } + } + + function setId(){ + let userId = getUserId(); if(userId == null){ - let url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=http://train.sparkus.cn/test/Sun_moves/"; + let url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback="+location.href; window.location.href = url; } else{ + let timestamp = parseInt(new Date().getTime()/1000 + ""); + let idTemp = "gameId=" + "100009" + + "?userId= " + userId + "?time=" + timestamp; + localStorage.setItem("user",JSON.stringify(idTemp)); } + } + + function containsNanana(str) { + return /test/i.test(str); + } function loadScript (moduleName, cb) { function scriptLoaded () { @@ -87,6 +205,21 @@ document.body.appendChild(domScript); } + function getId(str) { + let pathStr = str; + + let arr=pathStr.split("?"); + if (pathStr.length>= 0&&arr.length>0) { + let arr2=[]; + arr.map(item=>{ + arr2.push(item.split("=")[1]) + }) + return arr2; + } else { + return null + } + } + function getUserId() { let pathStr = window.location.search; let arr=pathStr.split("&"); @@ -103,8 +236,7 @@ } } - - + loadScript(debug ? 'cocos2d-js.js' : 'cocos2d-js-min.js', function () { if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) { @@ -116,5 +248,6 @@ }); })(); + diff --git a/build-templates/web-mobile/main.js b/build-templates/web-mobile/main.js index 9cc311f..a30ce0b 100644 --- a/build-templates/web-mobile/main.js +++ b/build-templates/web-mobile/main.js @@ -12,6 +12,7 @@ window.boot = function () { function setLoadingDisplay () { // Loading splash scene var splash = document.getElementById('splash'); + var star = document.getElementById('_star'); // var progressBar = splash.querySelector('.progress-bar span'); onProgress = function (finish, total) { // var percent = 100 * finish / total; @@ -19,12 +20,13 @@ window.boot = function () { // progressBar.style.width = percent.toFixed(2) + '%'; // } }; - splash.style.display = 'block'; + // splash.style.display = 'block'; // progressBar.style.width = '0%'; cc.director.once(cc.Director.EVENT_AFTER_SCENE_LAUNCH, function () { splash.style.display = 'none'; + star.style.display = 'none'; }); } @@ -86,7 +88,6 @@ window.boot = function () { } } ); - }; var option = { diff --git a/build-templates/web-mobile/style-mobile.css b/build-templates/web-mobile/style-mobile.css index f7cf3bd..1211ac3 100644 --- a/build-templates/web-mobile/style-mobile.css +++ b/build-templates/web-mobile/style-mobile.css @@ -81,7 +81,7 @@ p.footer { font-size: x-small; } -#splash { +/* #splash { position: absolute; top: 0; left: 0; @@ -89,7 +89,7 @@ p.footer { height: 100%; background: #171717 url(./splash.jpg) no-repeat center; background-size: 100%; -} +} */ /* .progress-bar { position: absolute; diff --git a/build/Sun_moves.zip b/build/Sun_moves.zip index 4565471..6e4f098 100644 Binary files a/build/Sun_moves.zip and b/build/Sun_moves.zip differ diff --git a/build/Sun_moves/assets/main/import/0e/0e0598680.json b/build/Sun_moves/assets/main/import/0e/0e0598680.json index 26a5c1b..59fc213 100644 --- a/build/Sun_moves/assets/main/import/0e/0e0598680.json +++ b/build/Sun_moves/assets/main/import/0e/0e0598680.json @@ -1 +1 @@ -[1,["ecpdLyjvZBwrvm+cedCcQy","14K23Xm1ROrrsGMBKG1Ql4","5aBm0rBa9Gxr8lWEiz8nAb","c6VxSCRHRB+qS91aK866px","08/X0iIrpGHbKJqlQlA512","95AC/gHlpJ64LEYVdSIIPB","f7ZJEQGfdJraVAIIAn8NFW","ceNMgtpZhCsKd8anXNKd7b","5f5dyqtRNNxaFmVzYns6FZ","9bvaMerUlDyary99mJa6xp","59Sn0ZhhJHf7HX55ZqGeqE","8cv+mgkU9OTIB7sHOwnyZ8","adR/bBScVC/bM24V3TdrfL","5cO7kybDxGj4ipyMYdRYZB","63m/tYswFOS7sCMuQGQ4kn","d608qFRoFHwbXd0Dap056i","61cyPdEfRN047sDK9rO0W5","d8HsitJHxOYqo801xBk8ev","29G9ngwKpNW56EfZdKv0SX"],["node","_spriteFrame","_textureSetter","_parent","root","phone","selfNode","Player","_N$handle","_scrollView","scene"],[["cc.Node",["_name","_objFlags","_active","_id","_contentSize","_parent","_components","_trs","_children","_prefab","_color","_anchorPoint"],-1,5,1,9,7,2,4,5,5],["cc.Sprite",["_sizeMode","_type","_enabled","node","_materials","_spriteFrame"],0,1,3,6],"cc.SpriteFrame",["cc.Label",["_string","_fontSize","_lineHeight","_N$verticalAlign","_N$cacheMode","_N$horizontalAlign","_N$overflow","node","_materials"],-4,1,3],["cc.Widget",["_alignFlags","_left","alignMode","_originalHeight","_top","node"],-2,1],["cc.Mask",["_N$alphaThreshold","_type","_segments","node","_materials"],0,1,3],["cc.Node",["_name","_objFlags","_parent","_components","_contentSize","_anchorPoint","_trs"],1,1,2,5,5,7],["cc.SceneAsset",["_name","asyncLoadAssets"],1],["cc.Node",["_name","_parent","_children","_components","_color","_contentSize","_anchorPoint","_trs"],2,1,2,12,5,5,5,7],["ca0f9k0oBVDbpQC+OMNTF3m",["node"],3,1],["cc.PrefabInfo",["fileId","root"],2,1],["cc.Canvas",["node","_designResolution"],3,1,5],["e1b90/rohdEk4SdmmEZANaD",["node","Player","selfNode","phone"],3,1,1,1,1],["d5421HgLShFKIjj5f18m1mi",["startAxis","spaceX","spaceY","padding_top","padding_buttom","padding_left","padding_right","node","itemRender"],-4,1,1],["cc.Scrollbar",["_N$direction","node","_scrollView","_N$handle"],2,1,1,1],["cc.Button",["zoomScale","_N$transition","node","clickEvents"],1,1,9],["cc.ClickEvent",["_componentId","handler","target"],1,1],["cc.Scene",["_name","_active","_children","_anchorPoint","_trs"],1,2,5,7],["cc.Camera",["_clearFlags","_depth","node"],1,1],["cc.ScrollView",["horizontal","brake","bounceDuration","_N$horizontalScrollBar","_N$verticalScrollBar","node","_N$content"],-2,1,1]],[[10,0,1,2],[1,3,4,5,1],[3,0,1,2,5,3,4,7,8,7],[0,0,5,6,10,4,7,2],[1,0,3,4,5,2],[0,0,5,6,4,7,2],[0,0,2,5,6,9,4,3],[0,0,5,8,6,4,7,2],[0,0,5,6,4,2],[0,0,2,5,6,4,3],[3,0,1,2,5,3,7,8,6],[0,0,5,6,9,4,2],[0,0,5,6,9,10,4,7,2],[0,0,5,6,9,10,4,11,7,2],[0,0,5,6,10,4,11,7,2],[4,0,5,2],[5,1,2,0,3,4,4],[7,0,1,3],[0,0,8,6,9,4,7,2],[0,0,3,8,6,10,4,7,3],[0,0,5,8,6,7,2],[0,0,1,2,5,8,6,4,11,7,4],[0,0,5,8,6,4,2],[0,0,5,8,6,9,4,7,2],[0,0,5,8,9,4,7,2],[0,0,5,8,2],[0,0,5,8,4,7,2],[0,0,1,8,4,11,3],[0,0,1,5,8,6,4,11,3],[0,0,5,6,7,2],[8,0,1,2,3,4,5,6,7,2],[6,0,1,2,3,4,5,6,3],[6,0,2,3,4,2],[9,0,1],[11,0,1,1],[12,0,1,2,3,1],[4,2,0,1,3,5,5],[4,0,1,4,5,4],[1,2,1,0,3,4,5,4],[1,1,0,3,4,5,3],[1,1,3,4,5,2],[1,1,0,3,4,3],[1,0,3,4,2],[13,0,1,2,3,4,5,6,7,8,8],[14,0,1,2,3,2],[5,1,0,3,4,3],[5,0,3,4,2],[15,0,1,2,3,3],[16,0,1,2,3],[17,0,1,2,3,4,3],[18,0,1,2,3],[19,0,1,2,3,4,5,6,6],[3,0,1,2,3,6,4,7,8,7],[3,0,1,2,3,4,7,8,6]],[[[{"name":"icon","rect":[0,0,64,64],"offset":[0,0],"originalSize":[64,64],"capInsets":[0,0,0,0]}],[2],0,[0],[2],[6]],[[[17,"RankScene",null],[18,"RankListItem",[-3,-4,-5,-6,-7,-8,-9],[[33,-2]],[0,"55FH2q1HJAyK0hrjxGH/+q",-1],[5,650,94],[0,-100,0,0,0,0,1,1,1,1]],[19,"Canvas","a286bbGknJLZpRpxROV6M94",[-16,-17,-18,-19,-20,-21,-22],[[34,-10,[5,750,1334]],[35,-14,-13,-12,-11],[15,45,-15]],[4,4294769916],[5,750,1334],[375,667,0,0,0,0,1,1,1,1]],[20,"Self",2,[-24,-25,-26,-27,-28,-29,-30],[[15,4,-23]],[0,-667,0,0,0,0,1,1,1,1]],[30,"ScrollView",2,[-34,-35],[[[38,false,1,0,-31,[27],28],-32,[43,2,10,10,10,10,10,10,-33,1]],4,1,4],[4,4286151086],[5,680,1400],[0,0.5,1],[0,150,0,0,0,0,1,1,1,1]],[21,"scrollBar",512,false,4,[-41],[[44,1,-38,-37,-36],[36,0,37,350.07654921020657,237,-39],[39,1,0,-40,[25],26]],[5,12,820],[0,1,0.5],[340,-410,0,0,0,0,1,1,1,1]],[22,"background",2,[-43,-44],[[40,1,-42,[4],5]],[5,750,1600]],[23,"pic",1,[-46,-47],[[16,1,60,0,-45,[14]]],[0,"38W68aamJOhbnBDiSboSCF",1],[5,60,60],[-171.687,0,0,0,0,0,1,1,1,1]],[24,"rank",1,[-48,-49,-50],[0,"d03AAa5MpCZY7eWAmnGlia",1],[5,40,36],[-261.233,0,0,0,0,0,1,1,1,1]],[25,"New Node",2,[-51,-52,-53]],[7,"player",2,[-55],[[1,-54,[37],38]],[5,98,106],[-254,377,0,0,0,0,1,1,1,1]],[7,"mask",10,[-57,-58],[[45,1,0,-56,[36]]],[5,65,65],[-0.079,4.153,0,0,0,0,1,1,1,1]],[7,"pic",3,[-60,-61],[[16,1,60,0,-59,[44]]],[5,60,60],[-171.687,62,0,0,0,0,1,1,1,1]],[26,"rank",3,[-62,-63,-64],[5,40,36],[-261.233,62,0,0,0,0,1,1,1,1]],[5,"backBtn",2,[[1,-65,[55],56],[37,9,42.410000000000025,29,-66],[47,1.1,3,-67,[[48,"e1b90/rohdEk4SdmmEZANaD","backClick",2]]]],[5,25,40],[-320.09,618,0,0,0,0,1,1,1,0]],[27,"content",512,[1],[5,680,600],[0,0.5,1]],[28,"view",512,4,[15],[[46,0,-68,[7]]],[5,680,700],[0,0.5,1]],[49,"New Node",false,[2],[0,0,0],[0,0,0,0,0,0,1,1,1,1]],[29,"Main Camera",2,[[50,7,-1,-69]],[0,0,252.87547223450972,0,0,0,1,1,1,1]],[5,"New Sprite",6,[[1,-70,[0],1]],[5,750,1600],[0,1600,0,0,0,0,1,1,-1,1]],[5,"New Sprite",6,[[1,-71,[2],3]],[5,750,1600],[0,-1600,0,0,0,0,1,1,-1,1]],[31,"bar",512,5,[-72],[5,10,30],[0,1,0],[-1,0,0,0,0,0,1,1,1,1]],[41,1,0,21,[6]],[51,false,0.75,0.23,null,null,4,15],[11,"bg",1,[[4,0,-73,[8],9]],[0,"6eyN1+nK5HT7svNqUsa2/+",1],[5,650,94]],[11,"pic",7,[[4,0,-74,[10],11]],[0,"08Vcf5jRBOhLOtnEzMUku6",1],[5,60,60]],[6,"icon",false,7,[[1,-75,[12],13]],[0,"f0DfDJ4PNDbb7lvykwzyBm",1],[5,64,64]],[6,"one",false,8,[[1,-76,[15],16]],[0,"07jJ4rjvBM3K8UmWuJPTSW",1],[5,66,66]],[6,"two",false,8,[[1,-77,[17],18]],[0,"cf00JqB1FL4J82EdUA2X13",1],[5,66,66]],[6,"three",false,8,[[1,-78,[19],20]],[0,"1beDtXl+VD86kzCArCfEPs",1],[5,66,66]],[12,"rankLab",1,[[2,"5",30,30,1,1,1,-79,[21]]],[0,"de4HHWkIhExrJq1+nHHMA6",1],[4,4282467672],[5,16.68,37.8],[-259.131,-2.054,0,0,0,0,1,1,1,1]],[13,"totalLab",1,[[2,"4",30,30,2,1,1,-80,[22]]],[0,"05c46heZhJV4sYMqYyxlB5",1],[4,4282467672],[5,16.68,37.8],[0,1,0.5],[224.356,-2.205,0,0,0,0,1,1,1,1]],[13,"nameLab",1,[[52,"测试",25,25,1,1,1,-81,[23]]],[0,"2an+mxcU5ApJz+ZlYlaw5G",1],[4,4282467672],[5,240,27.72],[0,0,0.5],[-99.704,-2.205,0,0,0,0,1,1,1,1]],[12,"label",1,[[2,"个",28,28,1,1,1,-82,[24]]],[0,"78MlwwIH1CYrPsut4N5MBU",1],[4,4282467672],[5,28,35.28],[246.176,-2.205,0,0,0,0,1,1,1,1]],[3,"New Label",9,[[10,"排名",27,27,1,1,-83,[29]]],[4,4279261059],[5,54,34.02],[-258.909,177.468,0,0,0,0,1,1,1,1]],[3,"New Label",9,[[10,"用户昵称",27,27,1,1,-84,[30]]],[4,4279261059],[5,108,34.02],[-48.622,177.468,0,0,0,0,1,1,1,1]],[3,"New Label",9,[[10,"驱逐太阳",27,27,1,1,-85,[31]]],[4,4279261059],[5,108,34.02],[223.658,177.468,0,0,0,0,1,1,1,1]],[8,"phone",11,[[4,0,-86,[32],33]],[5,65,65]],[8,"icon",11,[[4,0,-87,[34],35]],[5,66,66]],[5,"bg",3,[[1,-88,[39],40]],[5,750,118],[0,58,0,0,0,0,1,1,1,1]],[32,"pic",12,[-89],[5,60,60]],[42,0,40,[41]],[8,"icon",12,[[4,0,-90,[42],43]],[5,60,60]],[3,"rankLab",3,[[2,"5",25,25,1,1,1,-91,[45]]],[4,4293458428],[5,13.9,31.5],[-259.131,59.946,0,0,0,0,1,1,1,1]],[9,"one",false,13,[[1,-92,[46],47]],[5,66,66]],[9,"two",false,13,[[1,-93,[48],49]],[5,66,66]],[9,"three",false,13,[[1,-94,[50],51]],[5,66,66]],[14,"totalLab",3,[[2,"4",30,30,2,1,1,-95,[52]]],[4,4293458428],[5,16.68,37.8],[0,1,0.5],[224.356,59.795,0,0,0,0,1,1,1,1]],[14,"nameLab",3,[[53,"我",25,25,1,1,-96,[53]]],[4,4293458428],[5,25,31.5],[0,0,0.5],[-99.704,59.795,0,0,0,0,1,1,1,1]],[3,"label",3,[[2,"个",28,28,1,1,1,-97,[54]]],[4,4293458428],[5,28,35.28],[246.176,59.795,0,0,0,0,1,1,1,1]]],0,[0,4,1,0,0,1,0,-1,24,0,-2,7,0,-3,8,0,-4,30,0,-5,31,0,-6,32,0,-7,33,0,0,2,0,5,41,0,6,3,0,7,10,0,0,2,0,0,2,0,-1,18,0,-2,6,0,-3,4,0,-4,9,0,-5,10,0,-6,3,0,-7,14,0,0,3,0,-1,39,0,-2,12,0,-3,43,0,-4,13,0,-5,47,0,-6,48,0,-7,49,0,0,4,0,-2,23,0,0,4,0,-1,5,0,-2,16,0,8,22,0,9,23,0,0,5,0,0,5,0,0,5,0,-1,21,0,0,6,0,-1,19,0,-2,20,0,0,7,0,-1,25,0,-2,26,0,-1,27,0,-2,28,0,-3,29,0,-1,34,0,-2,35,0,-3,36,0,0,10,0,-1,11,0,0,11,0,-1,37,0,-2,38,0,0,12,0,-1,40,0,-2,42,0,-1,44,0,-2,45,0,-3,46,0,0,14,0,0,14,0,0,14,0,0,16,0,0,18,0,0,19,0,0,20,0,-1,22,0,0,24,0,0,25,0,0,26,0,0,27,0,0,28,0,0,29,0,0,30,0,0,31,0,0,32,0,0,33,0,0,34,0,0,35,0,0,36,0,0,37,0,0,38,0,0,39,0,-1,41,0,0,42,0,0,43,0,0,44,0,0,45,0,0,46,0,0,47,0,0,48,0,0,49,0,10,17,1,3,15,2,3,17,15,3,16,97],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,41],[-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,1,-1,1,-1,-1,1,-1,1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,1,1,1],[0,2,0,2,0,2,0,0,0,7,0,1,0,1,0,0,3,0,4,0,5,0,0,0,0,0,8,0,9,0,0,0,0,1,0,1,0,0,10,0,11,0,0,1,0,0,0,3,0,4,0,5,0,0,0,0,12,13,1]],[[{"name":"rank_phoneBg","rect":[0,0,98,106],"offset":[0,0],"originalSize":[98,106],"capInsets":[0,0,0,0]}],[2],0,[0],[2],[14]],[[{"name":"default_scrollbar_vertical","rect":[0,0,15,30],"offset":[0,0],"originalSize":[15,30],"capInsets":[4,10,4,10]}],[2],0,[0],[2],[15]],[[{"name":"default_scrollbar_vertical_bg","rect":[0,0,15,30],"offset":[0,0],"originalSize":[15,30],"capInsets":[4,10,4,10]}],[2],0,[0],[2],[16]],[[{"name":"default_panel","rect":[0,0,20,20],"offset":[0,0],"originalSize":[20,20],"capInsets":[6,6,6,6]}],[2],0,[0],[2],[17]],[[{"name":"back","rect":[7,0,25,40],"offset":[-0.5,0],"originalSize":[40,40],"capInsets":[0,0,0,0]}],[2],0,[0],[2],[18]]]] \ No newline at end of file +[1,["ecpdLyjvZBwrvm+cedCcQy","14K23Xm1ROrrsGMBKG1Ql4","5aBm0rBa9Gxr8lWEiz8nAb","c6VxSCRHRB+qS91aK866px","08/X0iIrpGHbKJqlQlA512","95AC/gHlpJ64LEYVdSIIPB","f7ZJEQGfdJraVAIIAn8NFW","ceNMgtpZhCsKd8anXNKd7b","5f5dyqtRNNxaFmVzYns6FZ","9bvaMerUlDyary99mJa6xp","59Sn0ZhhJHf7HX55ZqGeqE","8cv+mgkU9OTIB7sHOwnyZ8","adR/bBScVC/bM24V3TdrfL","5cO7kybDxGj4ipyMYdRYZB","63m/tYswFOS7sCMuQGQ4kn","d608qFRoFHwbXd0Dap056i","61cyPdEfRN047sDK9rO0W5","d8HsitJHxOYqo801xBk8ev","29G9ngwKpNW56EfZdKv0SX"],["node","_spriteFrame","_textureSetter","_parent","root","phone","selfNode","Player","_N$handle","_scrollView","scene"],[["cc.Node",["_name","_active","_objFlags","_id","_parent","_contentSize","_components","_trs","_children","_prefab","_color","_anchorPoint"],-1,1,5,9,7,2,4,5,5],["cc.Sprite",["_sizeMode","_type","_enabled","node","_materials","_spriteFrame"],0,1,3,6],"cc.SpriteFrame",["cc.Label",["_string","_fontSize","_lineHeight","_N$verticalAlign","_N$horizontalAlign","_N$cacheMode","_N$overflow","_styleFlags","node","_materials"],-5,1,3],["cc.Widget",["_alignFlags","_left","alignMode","_originalHeight","_top","node"],-2,1],["cc.Mask",["_N$alphaThreshold","_type","_segments","node","_materials"],0,1,3],["cc.Node",["_name","_objFlags","_parent","_components","_contentSize","_anchorPoint","_trs"],1,1,2,5,5,7],["cc.SceneAsset",["_name","asyncLoadAssets"],1],["cc.Node",["_name","_parent","_children","_components","_color","_contentSize","_anchorPoint","_trs"],2,1,2,12,5,5,5,7],["ca0f9k0oBVDbpQC+OMNTF3m",["node"],3,1],["cc.PrefabInfo",["fileId","root"],2,1],["cc.Canvas",["node","_designResolution"],3,1,5],["e1b90/rohdEk4SdmmEZANaD",["node","Player","selfNode","phone"],3,1,1,1,1],["d5421HgLShFKIjj5f18m1mi",["startAxis","spaceX","spaceY","padding_top","padding_buttom","padding_left","padding_right","node","itemRender"],-4,1,1],["cc.Scrollbar",["_N$direction","node","_scrollView","_N$handle"],2,1,1,1],["cc.Button",["zoomScale","_N$transition","node","clickEvents"],1,1,9],["cc.ClickEvent",["_componentId","handler","target"],1,1],["cc.Scene",["_name","_active","_children","_anchorPoint","_trs"],1,2,5,7],["cc.Camera",["_clearFlags","_depth","node"],1,1],["cc.ScrollView",["horizontal","brake","bounceDuration","_N$horizontalScrollBar","_N$verticalScrollBar","node","_N$content"],-2,1,1]],[[10,0,1,2],[1,3,4,5,1],[0,0,4,6,10,5,7,2],[3,0,1,2,4,3,5,8,9,7],[0,0,1,4,6,5,3],[1,0,3,4,5,2],[0,0,4,6,5,7,2],[0,0,1,4,6,9,5,3],[0,0,4,8,6,5,7,2],[3,0,1,2,4,3,8,9,6],[3,0,1,2,7,4,3,8,9,7],[0,0,4,6,9,5,2],[0,0,4,6,9,10,5,7,2],[0,0,4,6,9,10,5,11,7,2],[0,0,4,6,10,5,11,7,2],[4,0,5,2],[5,1,2,0,3,4,4],[7,0,1,3],[0,0,8,6,9,5,7,2],[0,0,3,8,6,10,5,7,3],[0,0,4,8,6,7,2],[0,0,2,1,4,8,6,5,11,7,4],[0,0,4,8,6,5,2],[0,0,4,8,6,9,5,7,2],[0,0,4,8,9,5,7,2],[0,0,4,8,2],[0,0,1,4,8,3],[0,0,4,8,5,7,2],[0,0,2,8,5,11,3],[0,0,2,4,8,6,5,11,3],[0,0,4,6,7,2],[0,0,4,6,5,2],[8,0,1,2,3,4,5,6,7,2],[6,0,1,2,3,4,5,6,3],[6,0,2,3,4,2],[9,0,1],[11,0,1,1],[12,0,1,2,3,1],[4,2,0,1,3,5,5],[4,0,1,4,5,4],[1,2,1,0,3,4,5,4],[1,1,0,3,4,5,3],[1,1,3,4,5,2],[1,1,0,3,4,3],[1,0,3,4,2],[13,0,1,2,3,4,5,6,7,8,8],[14,0,1,2,3,2],[5,1,0,3,4,3],[5,0,3,4,2],[15,0,1,2,3,3],[16,0,1,2,3],[17,0,1,2,3,4,3],[18,0,1,2,3],[19,0,1,2,3,4,5,6,6],[3,0,1,2,3,6,5,8,9,7],[3,0,1,2,3,5,8,9,6]],[[[{"name":"icon","rect":[0,0,64,64],"offset":[0,0],"originalSize":[64,64],"capInsets":[0,0,0,0]}],[2],0,[0],[2],[6]],[[[17,"RankScene",null],[18,"RankListItem",[-3,-4,-5,-6,-7,-8,-9],[[35,-2]],[0,"55FH2q1HJAyK0hrjxGH/+q",-1],[5,650,94],[0,-100,0,0,0,0,1,1,1,1]],[19,"Canvas","a286bbGknJLZpRpxROV6M94",[-16,-17,-18,-19,-20,-21,-22,-23],[[36,-10,[5,750,1334]],[37,-14,-13,-12,-11],[15,45,-15]],[4,4294769916],[5,750,1334],[375,667,0,0,0,0,1,1,1,1]],[20,"Self",2,[-25,-26,-27,-28,-29,-30],[[15,4,-24]],[0,-667,0,0,0,0,1,1,1,1]],[32,"ScrollView",2,[-34,-35],[[[40,false,1,0,-31,[27],28],-32,[45,2,10,10,10,10,10,10,-33,1]],4,1,4],[4,4286151086],[5,680,1400],[0,0.5,1],[0,150,0,0,0,0,1,1,1,1]],[21,"scrollBar",512,false,4,[-41],[[46,1,-38,-37,-36],[38,0,37,350.07654921020657,237,-39],[41,1,0,-40,[25],26]],[5,12,820],[0,1,0.5],[340,-410,0,0,0,0,1,1,1,1]],[8,"player",2,[-43,-44],[[1,-42,[40],41]],[5,98,106],[-254,377,0,0,0,0,1,1,1,1]],[22,"background",2,[-46,-47],[[42,1,-45,[4],5]],[5,750,1600]],[23,"pic",1,[-49,-50],[[16,1,60,0,-48,[14]]],[0,"38W68aamJOhbnBDiSboSCF",1],[5,60,60],[-171.687,0,0,0,0,0,1,1,1,1]],[24,"rank",1,[-51,-52,-53],[0,"d03AAa5MpCZY7eWAmnGlia",1],[5,40,36],[-261.233,0,0,0,0,0,1,1,1,1]],[25,"New Node",2,[-54,-55,-56]],[26,"rank",false,6,[-57,-58,-59]],[8,"mask",6,[-61,-62],[[47,1,0,-60,[39]]],[5,65,65],[-0.079,4.153,0,0,0,0,1,1,1,1]],[8,"pic",3,[-64,-65],[[16,1,60,0,-63,[47]]],[5,60,60],[-171.687,62,0,0,0,0,1,1,1,1]],[27,"rank",3,[-66,-67,-68],[5,40,36],[-261.233,62,0,0,0,0,1,1,1,1]],[6,"backBtn",2,[[1,-69,[58],59],[39,9,42.410000000000025,29,-70],[49,1.1,3,-71,[[50,"e1b90/rohdEk4SdmmEZANaD","backClick",2]]]],[5,25,40],[-320.09,618,0,0,0,0,1,1,1,0]],[28,"content",512,[1],[5,680,600],[0,0.5,1]],[29,"view",512,4,[16],[[48,0,-72,[7]]],[5,680,700],[0,0.5,1]],[51,"New Node",false,[2],[0,0,0],[0,0,0,0,0,0,1,1,1,1]],[30,"Main Camera",2,[[52,7,-1,-73]],[0,0,252.87547223450972,0,0,0,1,1,1,1]],[6,"New Sprite",7,[[1,-74,[0],1]],[5,750,1600],[0,1600,0,0,0,0,1,1,-1,1]],[6,"New Sprite",7,[[1,-75,[2],3]],[5,750,1600],[0,-1600,0,0,0,0,1,1,-1,1]],[33,"bar",512,5,[-76],[5,10,30],[0,1,0],[-1,0,0,0,0,0,1,1,1,1]],[43,1,0,22,[6]],[53,false,0.75,0.23,null,null,4,16],[11,"bg",1,[[5,0,-77,[8],9]],[0,"6eyN1+nK5HT7svNqUsa2/+",1],[5,650,94]],[11,"pic",8,[[5,0,-78,[10],11]],[0,"08Vcf5jRBOhLOtnEzMUku6",1],[5,60,60]],[7,"icon",false,8,[[1,-79,[12],13]],[0,"f0DfDJ4PNDbb7lvykwzyBm",1],[5,64,64]],[7,"one",false,9,[[1,-80,[15],16]],[0,"07jJ4rjvBM3K8UmWuJPTSW",1],[5,66,66]],[7,"two",false,9,[[1,-81,[17],18]],[0,"cf00JqB1FL4J82EdUA2X13",1],[5,66,66]],[7,"three",false,9,[[1,-82,[19],20]],[0,"1beDtXl+VD86kzCArCfEPs",1],[5,66,66]],[12,"rankLab",1,[[3,"5",30,30,1,1,1,-83,[21]]],[0,"de4HHWkIhExrJq1+nHHMA6",1],[4,4282467672],[5,16.68,37.8],[-259.131,-2.054,0,0,0,0,1,1,1,1]],[13,"totalLab",1,[[3,"4",30,30,2,1,1,-84,[22]]],[0,"05c46heZhJV4sYMqYyxlB5",1],[4,4282467672],[5,16.68,37.8],[0,1,0.5],[224.356,-2.205,0,0,0,0,1,1,1,1]],[13,"nameLab",1,[[54,"测试",25,25,1,1,1,-85,[23]]],[0,"2an+mxcU5ApJz+ZlYlaw5G",1],[4,4282467672],[5,240,27.72],[0,0,0.5],[-99.704,-2.205,0,0,0,0,1,1,1,1]],[12,"label",1,[[3,"个",28,28,1,1,1,-86,[24]]],[0,"78MlwwIH1CYrPsut4N5MBU",1],[4,4282467672],[5,28,35.28],[246.176,-2.205,0,0,0,0,1,1,1,1]],[2,"New Label",10,[[9,"排名",27,27,1,1,-87,[29]]],[4,4279261059],[5,54,34.02],[-258.909,177.468,0,0,0,0,1,1,1,1]],[2,"New Label",10,[[9,"用户昵称",27,27,1,1,-88,[30]]],[4,4279261059],[5,108,34.02],[-48.622,177.468,0,0,0,0,1,1,1,1]],[2,"New Label",10,[[9,"驱逐太阳",27,27,1,1,-89,[31]]],[4,4279261059],[5,108,34.02],[223.658,177.468,0,0,0,0,1,1,1,1]],[2,"New Label",11,[[10,"超过了",24,24,1,1,1,-90,[32]]],[4,4279261059],[5,72,30.24],[-42.835,60.883,0,0,0,0,1,1,1,1]],[2,"New Label",11,[[10,"的人",24,24,1,1,1,-91,[33]]],[4,4279261059],[5,48,30.24],[74.991,60.883,0,0,0,0,1,1,1,1]],[2,"number",11,[[10,"30%",29,29,1,1,1,-92,[34]]],[4,4281545727],[5,58.04,36.54],[21.936,61.459,0,0,0,0,1,1,1,1]],[4,"phone",false,12,[[5,0,-93,[35],36]],[5,65,65]],[4,"icon",false,12,[[5,0,-94,[37],38]],[5,66,66]],[6,"bg",2,[[1,-95,[42],43]],[5,750,118],[0,-609,0,0,0,0,1,1,1,1]],[34,"pic",13,[-96],[5,60,60]],[44,0,44,[44]],[31,"icon",13,[[5,0,-97,[45],46]],[5,60,60]],[2,"rankLab",3,[[3,"5",25,25,1,1,1,-98,[48]]],[4,4293458428],[5,13.9,31.5],[-259.131,59.946,0,0,0,0,1,1,1,1]],[4,"one",false,14,[[1,-99,[49],50]],[5,66,66]],[4,"two",false,14,[[1,-100,[51],52]],[5,66,66]],[4,"three",false,14,[[1,-101,[53],54]],[5,66,66]],[14,"totalLab",3,[[3,"4",30,30,2,1,1,-102,[55]]],[4,4293458428],[5,16.68,37.8],[0,1,0.5],[224.356,59.795,0,0,0,0,1,1,1,1]],[14,"nameLab",3,[[55,"我",25,25,1,1,-103,[56]]],[4,4293458428],[5,25,31.5],[0,0,0.5],[-99.704,59.795,0,0,0,0,1,1,1,1]],[2,"label",3,[[3,"个",28,28,1,1,1,-104,[57]]],[4,4293458428],[5,28,35.28],[246.176,59.795,0,0,0,0,1,1,1,1]]],0,[0,4,1,0,0,1,0,-1,25,0,-2,8,0,-3,9,0,-4,31,0,-5,32,0,-6,33,0,-7,34,0,0,2,0,5,45,0,6,3,0,7,6,0,0,2,0,0,2,0,-1,19,0,-2,7,0,-3,4,0,-4,10,0,-5,6,0,-6,43,0,-7,3,0,-8,15,0,0,3,0,-1,13,0,-2,47,0,-3,14,0,-4,51,0,-5,52,0,-6,53,0,0,4,0,-2,24,0,0,4,0,-1,5,0,-2,17,0,8,23,0,9,24,0,0,5,0,0,5,0,0,5,0,-1,22,0,0,6,0,-1,11,0,-2,12,0,0,7,0,-1,20,0,-2,21,0,0,8,0,-1,26,0,-2,27,0,-1,28,0,-2,29,0,-3,30,0,-1,35,0,-2,36,0,-3,37,0,-1,38,0,-2,39,0,-3,40,0,0,12,0,-1,41,0,-2,42,0,0,13,0,-1,44,0,-2,46,0,-1,48,0,-2,49,0,-3,50,0,0,15,0,0,15,0,0,15,0,0,17,0,0,19,0,0,20,0,0,21,0,-1,23,0,0,25,0,0,26,0,0,27,0,0,28,0,0,29,0,0,30,0,0,31,0,0,32,0,0,33,0,0,34,0,0,35,0,0,36,0,0,37,0,0,38,0,0,39,0,0,40,0,0,41,0,0,42,0,0,43,0,-1,45,0,0,46,0,0,47,0,0,48,0,0,49,0,0,50,0,0,51,0,0,52,0,0,53,0,10,18,1,3,16,2,3,18,16,3,17,104],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,45],[-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,-1,1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,1,1,1],[0,2,0,2,0,2,0,0,0,7,0,1,0,1,0,0,3,0,4,0,5,0,0,0,0,0,8,0,9,0,0,0,0,0,0,0,1,0,1,0,0,10,0,11,0,0,1,0,0,0,3,0,4,0,5,0,0,0,0,12,13,1]],[[{"name":"rank_phoneBg","rect":[0,0,98,106],"offset":[0,0],"originalSize":[98,106],"capInsets":[0,0,0,0]}],[2],0,[0],[2],[14]],[[{"name":"default_scrollbar_vertical","rect":[0,0,15,30],"offset":[0,0],"originalSize":[15,30],"capInsets":[4,10,4,10]}],[2],0,[0],[2],[15]],[[{"name":"default_scrollbar_vertical_bg","rect":[0,0,15,30],"offset":[0,0],"originalSize":[15,30],"capInsets":[4,10,4,10]}],[2],0,[0],[2],[16]],[[{"name":"default_panel","rect":[0,0,20,20],"offset":[0,0],"originalSize":[20,20],"capInsets":[6,6,6,6]}],[2],0,[0],[2],[17]],[[{"name":"back","rect":[7,0,25,40],"offset":[-0.5,0],"originalSize":[40,40],"capInsets":[0,0,0,0]}],[2],0,[0],[2],[18]]]] \ No newline at end of file diff --git a/build/Sun_moves/assets/main/index.js b/build/Sun_moves/assets/main/index.js index ab21a3f..68ce37d 100644 --- a/build/Sun_moves/assets/main/index.js +++ b/build/Sun_moves/assets/main/index.js @@ -1 +1 @@ -window.__require=function t(e,i,n){function o(a,s){if(!i[a]){if(!e[a]){var c=a.split("/");if(c=c[c.length-1],!e[c]){var h="function"==typeof __require&&__require;if(!s&&h)return h(c,!0);if(r)return r(c,!0);throw new Error("Cannot find module '"+a+"'")}a=c}var l=i[a]={exports:{}};e[a][0].call(l.exports,function(t){return o(e[a][1][t]||t)},l,l.exports,t,e,i,n)}return i[a].exports}for(var r="function"==typeof __require&&__require,a=0;athis.m_fluxayTime+this.m_intervalTime&&(this._time=0);var e=this._time/this.m_fluxayTime;this._time>this.m_fluxayTime&&(e=1+(this._time-this.m_fluxayTime)/this.m_intervalTime),null!=this.m_reviseTimeScale&&null!=this.m_reviseStartTime&&(e/=this.m_reviseTimeScale,e-=this.m_reviseStartTime),this._material.setProperty("u_time",e),this._time+=t},refreshSpriteFrameData:function(){var t=this.node.getComponent(cc.Sprite),e=t.getMaterial(0),i=t.spriteFrame;if(null!=i){var n=i.uv[0],o=i.uv[6],r=i.uv[3],a=i.uv[5],s=new cc.Vec4(n,a,o,r),c=i.isRotated()?1:0;void 0!==e.getProperty("u_uvOffset")&&e.setProperty("u_uvOffset",s),void 0!==e.getProperty("u_uvRotated")&&e.setProperty("u_uvRotated",c)}}}),cc._RF.pop()},{}],DynamicAtlasManager:[function(t,e){"use strict";cc._RF.push(e,"3ffacOneORCf6Bc1LFhTCCQ","DynamicAtlasManager"),cc.Class({extends:cc.Component,properties:{},onLoad:function(){cc.dynamicAtlasManager.enabled=!1}}),cc._RF.pop()},{}],GameData:[function(t,e,i){"use strict";cc._RF.push(e,"f2f0bI5PsVI+o18xF6G+KVa","GameData");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=cc._decorator,s=a.ccclass,c=a.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.text="hello",e}var i;return o(e,t),i=e,e.prototype.onLoad=function(){null==i._instance?(i._instance=this,cc.game.addPersistRootNode(this.node),this.AudioManager=this.node.getComponent("BallAudioManager")):this.node.destroy()},e.prototype.start=function(){this.GM_INFO={mean_Time:0,total:0,currSeed:203213,gameId:"100009",userId:200139,guide:!0,url:"http://api.sparkus.cn",success:!1,matchId:null,custom:0},this.LEVEL_INFO=[{number:3,moveNumber:0,moveSpeed:0,maxDistance:200,maxMove:1200,repeat:0},{number:4,moveNumber:0,moveSpeed:0,maxDistance:200,maxMove:1200,repeat:0},{number:4,moveNumber:0,moveSpeed:0,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:1,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:5,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:3,moveSpeed:4,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:0,moveSpeed:4,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:3,moveSpeed:4,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:3,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:8,moveNumber:3,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:8,moveNumber:5,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:9,moveNumber:3,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:9,moveNumber:5,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:10,moveNumber:5,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:3,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:4,moveNumber:0,moveSpeed:0,maxDistance:200,maxMove:1200,repeat:0},{number:4,moveNumber:1,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:4,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:4,moveNumber:1,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:1,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:5,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:1,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:3,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:6,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:6,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:4,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:7,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:7,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:7,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:4,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:8,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:8,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:8,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:8,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:8,moveNumber:4,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:8,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:8,moveNumber:4,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:9,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:9,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:9,moveNumber:5,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:10,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0}],this.CLICK_DATA={type:1,success:!1,round:0,totalSunCount:0,movedSunCount:0,sunSpeed:0,overlapSunCount:0,colorList:[],duration:0,difficultyLevel:0,sunList:[],stepTimeList:[],remainder:120},this.GAME_DATA=[]},e.prototype.CLICK_init=function(){this.CLICK_DATA={type:1,success:!1,round:0,totalSunCount:0,movedSunCount:0,sunSpeed:0,overlapSunCount:0,colorList:[],duration:0,difficultyLevel:0,sunList:[],stepTimeList:[],remainder:120}},r([c(cc.Label)],e.prototype,"label",void 0),r([c],e.prototype,"text",void 0),i=r([s],e)}(cc.Component);i.default=h,cc._RF.pop()},{}],GameManager:[function(t,e,i){"use strict";cc._RF.push(e,"b0432BA295DjIOcuitdGKO1","GameManager");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=cc._decorator,s=a.ccclass,c=a.property,h=t("./GameData"),l=t("./Notification"),u=t("./crypto/serverAPI"),p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.ball=null,e.qiu1=null,e.qiu2=null,e.qiu3=null,e.linePrefab=null,e.hit=null,e.bg1=null,e.bg2=null,e.time=null,e.begin=!1,e.fuhuo=!1,e.over=!1,e.show=!1,e.levelLabel=null,e}return o(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){this.fit(),this.init()},e.prototype.fit=function(){this.fitTop=450,this.fitBot=-600,this.setFit()||(this.fitTop=600,this.fitBot=-700)},e.prototype.getSetScreenResolutionFlag=function(){var t=cc.winSize,e=t.width;return!(t.height/e>16.2/9)},e.prototype.setFit=function(){return this.getSetScreenResolutionFlag()},e.prototype.init=function(){this.node.getChildByName("GameOver").zIndex=100,this.node.getChildByName("GameOver").active=!1,this.ball.zIndex=100,this.bg1=this.node.getChildByName("bg1"),this.bg2=this.node.getChildByName("bg2"),this.time=this.node.getChildByName("Top").getChildByName("time").getComponent(cc.Label),this.node.getChildByName("showBtn").active=!1,this.begin=!1,this.over=!1,this.fuhuo=!0,this.pause=!0,this.show=!1,this.round=0,this.level=2,this.countTime=60,0!=h.default._instance.GM_INFO.custom&&(this.level=h.default._instance.GM_INFO.custom,h.default._instance.GM_INFO.custom+=1,this.countTime=12e6),this.timeCount=.1,this.clickNow=0,this.clickCount=0,this.timeStart=0,this.repeat=-1,this.numberRepeat=-1,this.route_Array=[],this.moveArray=[],this.now_Array=[],this.ball_Array=[],this.Pos_Array=[],this.time_Array=[],this.color_Array=[],h.default._instance.GAME_DATA=[],h.default._instance.GM_INFO.success=!1,this.startTime=0,this.overTime=0,this.winTime=0,h.default._instance.GM_INFO.total=0,h.default._instance.GM_INFO.mean_Time=0,this.schedule(this.updateCountDownTime,1),this.startGame()},e.prototype.backScene=function(){cc.director.loadScene("LoadScene")},e.prototype.reStart=function(t){this.node.getChildByName("showBtn").active=!1,this.destroyLine(),this.timeCount=.1,this.clickNow=0,this.timeStart=0,this.repeat=-1,this.numberRepeat=-1,this.begin=!1,this.route_Array=[],this.now_Array=[],this.ball_Array=[],this.Pos_Array=[],this.moveArray=[],this.time_Array=[],this.color_Array=[],0==t?this.bgMove(1):1==t?this.startGame():2==t&&this.bgMove(-1)},e.prototype.begin_Guide=function(){},e.prototype.getTime=function(){return(new Date).getTime()},e.prototype.passLevel=function(){var t=this;if(this.destroyLine(),0==this.over&&this.countTime>=0){for(var e=[],i=0,n=this.ball_Array[0],o=1;o=0)for(var i=this.ball_Array[0],n=function(n){cc.tween(o.ball_Array[n]).to(2,{x:i.x,y:i.y}).call(function(){e.ball_Array[n].active=!1,n==e.ball_Array.length-1&&(e.ball.opacity=255,e.ball.position=cc.v3(i.x,i.y,0),e.clearSun(),e.reStart(t))}).start()},o=this,r=1;r0&&this.createLine(cc.v2(this.ball_Array[this.clickNow-1].x,this.ball_Array[this.clickNow-1].y),cc.v2(this.ball_Array[this.clickNow].x,this.ball_Array[this.clickNow].y),.2),this.clickNow+=1,setTimeout(function(){e.ball_Array[e.clickNow-1]&&(e.ball_Array[e.clickNow-1].getChildByName("guang").active=!1)},200),this.clickNow==this.now_Array.length){this.pause=!0,h.default._instance.GM_INFO.total+=this.clickNow,this.overTime=this.getTime(),h.default._instance.GM_INFO.mean_Time+=this.overTime-this.startTime,console.log(h.default._instance.GM_INFO.mean_Time);var n=parseInt((this.overTime-this.startTime)/100+"");this.startTime=0,this.overTime=0,this.level<4&&this.level>1||this.level;var o=this.node.getChildByName("Win");o.active=!0,o.setScale(0),h.default._instance.AudioManager.playWin(),this.round+=1;var r=[];if(this.moveArray.length>0)for(var a=0;a=0&&(e.level>=15?(h.default._instance.GM_INFO.success=!0,e.level+=0,e.fuhuo=!0,e.passLevel()):(e.level+=1,e.fuhuo=!0,e.passLevel()))}).start()}}else this.setLoss()}},e.prototype.setLoss=function(){h.default._instance.AudioManager.playWarning(),this.begin=!1,this.overTime=this.getTime(),h.default._instance.GM_INFO.mean_Time+=this.overTime-this.startTime,console.log(h.default._instance.GM_INFO.mean_Time);var t=parseInt((this.overTime-this.startTime)/100+"");this.startTime=0,this.overTime=0,this.level<4&&this.level>1||this.level,this.round+=1;var e=[];if(this.moveArray.length>0)for(var i=0;i2?(this.level-=1,this.fuhuo=!0,this.loseLevel(2)):this.loseLevel(1);var n=this.node.getChildByName("Over");cc.tween(n).to(.25,{opacity:255}).delay(.1).to(.2,{opacity:0}).delay(.1).to(.15,{opacity:255}).delay(.1).to(.1,{opacity:0}).start()},e.prototype.hitAction=function(t){var e=this;this.hit.active=!0,this.hit.opacity=0,this.hit.setPosition,this.hit.setPosition(this.ball_Array[t].x+35,this.ball_Array[t].y+35),cc.tween(this.hit).to(0,{opacity:255}).to(.2,{position:cc.v3(this.hit.x-35,this.hit.y-35,0)}).delay(.2).to(.1,{opacity:0}).call(function(){e.hit.active=!1}).start()},e.prototype.startGame=function(){0==this.over&&this.countTime>0&&(this.pause=!0,this.createSun(),this.begin=!1,cc.tween(this.ball).to(.5,{opacity:255,scale:1.3}).start())},e.prototype.runGame=function(){for(var t=this,e=-650,i=function(i){e=1e3*n.now_Array[i].time+e,setTimeout(function(){if(0==t.over){var e=t.now_Array[i].timeCount;e>.5&&(e=.5),0!=i&&t.ball&&t.now_Array[i]&&t.createLine(cc.v2(t.ball.x,t.ball.y),cc.v2(t.now_Array[i].x,t.now_Array[i].y),t.now_Array[i].time-e),cc.tween(t.ball).to(t.now_Array[i].time-e,{x:t.now_Array[i].x,y:t.now_Array[i].y}).to(.1,{scale:1}).call(function(){t.createBall(i,t.now_Array[i].color,t.now_Array[i].speed,t.now_Array[i].repeat),i==t.now_Array.length-1&&(t.ball.opacity=0,setTimeout(function(){t.destroyLine(),t.beginGame(),h.default._instance.LEVEL_INFO[t.level-1].moveNumber<1?t.pause=!1:t.moveAction()},150))}).start()}},e)},n=this,o=0;o=2&&e.moveSpeed,1==e.repeat){this.repeat=parseInt(Math.random()*(e.number-1)+1+"");var i=0;this.repeat>4?(this.numberRepeat=parseInt(4*Math.random()+""),this.repeat==e.number-1&&(this.numberRepeat=this.repeat-parseInt(3*Math.random()+2+"")),i=this.Pos_Array[this.numberRepeat],this.Pos_Array[this.repeat]=i):(0==this.repeat&&(this.repeat=1),e.number-1-this.repeat==2?(this.numberRepeat=e.number-1,i=this.Pos_Array[this.numberRepeat]):e.number-1-this.repeat==1?(this.numberRepeat=this.repeat-2,i=this.Pos_Array[this.numberRepeat]):e.number-1-this.repeat==0?(this.numberRepeat=this.repeat-2,i=this.Pos_Array[this.numberRepeat]):e.number-1-this.repeat>2?(this.numberRepeat=parseInt(Math.random()*(e.number-this.repeat-2)+"")+this.repeat+2,i=this.Pos_Array[this.numberRepeat]):(this.numberRepeat=this.repeat-2,i=this.Pos_Array[this.numberRepeat]),this.Pos_Array[this.repeat]=i)}if(e.moveNumber>0){var n=cc.v2(0,0);3==e.number?this.moveArray=[0,1,0]:4==e.number?this.moveArray=[0,0,1,0]:5==e.number?this.moveArray=[0,0,1,0,0]:5==e.number?this.moveArray=[0,0,1,0,0]:6==e.number?this.moveArray=[0,0,1,1,0,0]:7==e.number?this.moveArray=[0,0,1,1,1,0,0]:8==e.number?this.moveArray=[0,0,0,1,1,1,1,0]:9==e.number?this.moveArray=[0,0,1,1,1,1,1,0,0]:10==e.number&&(this.moveArray=[0,0,0,1,1,1,1,1,0,0]);for(var o=0,r=0;r=0;a--)a!=r&&0==this.moveArray[a]&&a!=this.repeat&&a!=this.numberRepeat&&(this.moveArray[a]=1,this.moveArray[r]=0,a=-1);for(var s=function(e){1==c.moveArray[e]&&setTimeout(function(){n=t.getPos2(!0,e),t.Pos_Array[e]=n},300*(o+=1))},c=this,l=0;l=2&&(n=7-i.moveSpeed/2),i.moveNumber>0){cc.v2(0,0);for(var o=0;o=0;r--)r!=o&&0==this.moveArray[r]&&r!=this.repeat&&r!=this.numberRepeat&&(this.moveArray[r]=1,this.moveArray[o]=0,r=-1);for(var a=0,s=0;s1||e<-1?(0==e||i<0||i>=this.Pos_Array.length)&&(i=this.getRandomArray(t)):i=this.getRandomArray(t),i},e.prototype.createSun=function(){for(var t=this,e=h.default._instance.LEVEL_INFO[this.level-1],i=0,n=function(n){setTimeout(function(){if(0==t.over){var i=t.getPos(!1,n);t.Pos_Array.push(i),t.Pos_Array.length==e.number&&(t.createMove(),t.createPos())}},100*(i+=1))},o=0;o0)for(var r=0;r0)for(var r=0;r160&&(o=s160&&(r=1!=o||c800&&(a=800),a/800*.6},e.prototype.calculateDistance2=function(t,e,i,n){var o=i-t,r=n-e,a=Math.sqrt(o*o+r*r);return a>1200&&(a=1200),a/1200*1},e.prototype.calculateDistance3=function(t,e,i,n){var o=i-t,r=n-e,a=Math.sqrt(o*o+r*r);return a>1200&&(a=1200),a/1200*1.5},e.prototype.bgMove=function(t){var e=this,i=300*Math.random()+300,n=600*Math.random()-300,o=this.bg1.y-i*t,r=i/400*.7;cc.tween(this.ball).to(.3,{scale:1.3}).to(r,{x:n}).start(),cc.tween(this.bg1).delay(.3).to(r,{y:o}).start(),setTimeout(function(){0==e.over&&e.startGame()},1500*r)},e.prototype.getTimeMargin=function(t){var e,i;e=t,i=parseInt(e/3600+"");var n=parseInt((e-3600*i)/60+""),o=""+n;n<10&&(o="0"+n);var r=e-3600*i-60*n,a=r+"";return r<10&&(a="0"+r),o+":"+a},e.prototype.updateCountDownTime=function(){if(this.countTime>0&&0==this.pause){if(this.countTime-=1,this.time.string=this.getTimeMargin(this.countTime),this.countTime<5){cc.tween(this.time.node).to(.25,{scale:1.5,color:cc.color(255,0,0)}).to(.25,{scale:1,color:cc.color(255,255,255)}).start();var t=this.node.getChildByName("Over");cc.tween(t).to(.2,{opacity:255}).delay(.1).to(.2,{opacity:0}).start()}if(this.countTime<=0){this.begin=!1,this.over=!0,this.unschedule(this.updateCountDownTime),this.setLoss();var e=0;console.log(h.default._instance.GM_INFO.mean_Time,this.clickCount),this.clickCount>0&&(e=parseInt(h.default._instance.GM_INFO.mean_Time/this.clickCount+"")),h.default._instance.GM_INFO.mean_Time=parseInt(e/100+""),h.default._instance.GM_INFO.mean_Time=h.default._instance.GM_INFO.mean_Time/10,console.log(h.default._instance.GM_INFO.mean_Time),this.setRank(e)}}},e.prototype.setData=function(){var t=h.default._instance.GAME_DATA,e={matchId:this.getMatchId(),data:t};u.default.uploadUserLogData(e,function(){})},e.prototype.getMatchId=function(){var t=cc.sys.localStorage.getItem("matchId");if("undifend"==t||null==t)t=this.setMatchId();else{var e=parseInt(t[10]);e+=1,t=t.slice(0,10)+e+"",h.default._instance.GM_INFO.matchId=t,cc.sys.localStorage.setItem("matchId",t)}return t},e.prototype.setMatchId=function(){for(var t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",e=[],i=0;i<10;i++){var n=Math.floor(Math.random()*t.length),o=t.charAt(n);e.push(o)}var r=e.join("")+1+"";return cc.sys.localStorage.setItem("matchNumber",1),cc.sys.localStorage.setItem("matchId",r),h.default._instance.GM_INFO.matchId=r,r},e.prototype.setRank=function(t){var e={type:1,reactionTime:t,totalSunCount:h.default._instance.GM_INFO.total,success:h.default._instance.GM_INFO.success};console.log(e),u.default.rankData(1,function(){},e),this.node.getChildByName("GameOver").active=!0,this.node.getChildByName("GameOver").opacity=0,cc.tween(this.node.getChildByName("GameOver")).to(.4,{opacity:255}).delay(2).to(.4,{opacity:50}).call(function(){cc.director.loadScene("OverScene")}).start()},e.prototype.outPut=function(){h.default._instance.CLICK_DATA,h.default._instance.GAME_DATA=[],h.default._instance.GAME_DATA.push(h.default._instance.CLICK_DATA),h.default._instance.CLICK_init()},e.prototype.showNumber=function(){0==this.show?this.show=!0:1==this.show&&(this.show=!1);for(var t=0;t=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=t("./GameData"),s=t("./crypto/serverAPI"),c=cc._decorator,h=c.ccclass,l=c.property,u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.count=null,e.time=null,e.selfNode=null,e.one=null,e.two=null,e.three=null,e.four=null,e.five=null,e}return o(e,t),e.prototype.start=function(){this.count.string=a.default._instance.GM_INFO.total,this.time.string=a.default._instance.GM_INFO.mean_Time+"s",this.listData=[],this.selfData=null,this.one.active=!1,this.two.active=!1,this.three.active=!1,this.four.active=!1,this.five.active=!1,this.getRank()},e.prototype.success=function(){},e.prototype.back=function(){cc.director.loadScene("RankScene")},e.prototype.again=function(){cc.director.loadScene("GameScene")},e.prototype.getRank=function(){s.default.rankData(2,this.getRankData.bind(this),{page:1,pageSize:100})},e.prototype.getRankData=function(t){if(t){this.listData=t.data.list,this.selfData=t.data.info;var e=[],i=!1;this.selfData.nickName.length>4&&(this.selfData.nickName=this.selfData.nickName.substring(0,4)+"..."),this.selfNode.getChildByName("name").getComponent(cc.Label).string=this.selfData.nickName,this.selfNode.getChildByName("total").getComponent(cc.Label).string=this.selfData.totalSunCount,this.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"),this.selfData.pic);for(var n=0;n<=this.listData.length-1;n++)e.push({rank:n+1,name:this.listData[n].nickName,total:this.listData[n].totalSunCount,pic:this.listData[n].pic}),a.default._instance.GM_INFO.userId==this.listData[n].userId&&(i=!0,this.selfNode.getChildByName("rank").getComponent(cc.Label).string=n+1+""),n==this.listData.length-1&&0==i&&(this.selfNode.getChildByName("rank").getComponent(cc.Label).string="99+"),n<5&&this.setRank(n,this.listData[n])}},e.prototype.setRank=function(t,e){var i=null;0==t?i=this.one:1==t?i=this.two:2==t?i=this.three:3==t?i=this.four:4==t&&(i=this.five),i&&(i.active=!0,e.nickName.length>4&&(e.nickName=e.nickName.substring(0,4)+"..."),i.getChildByName("name").getComponent(cc.Label).string=e.nickName,i.getChildByName("total").getComponent(cc.Label).string=e.totalSunCount,this.setPic(i.getChildByName("pic").getChildByName("icon"),e.pic))},e.prototype.setPic=function(t,e){t.active=!1;var i=e;setTimeout(function(){fetch(i).then(function(t){return t.headers.get("Content-Length")}).then(function(e){"5093"==e&&(t.active=!0)}).catch(function(t){console.error("Error fetching X-Info:",t)})},100),cc.assetManager.loadRemote(i,{ext:".jpg"},function(e,i){i?(t.active=!0,t.getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(i)):console.log(e,i)})},r([l(cc.Label)],e.prototype,"count",void 0),r([l(cc.Label)],e.prototype,"time",void 0),r([l(cc.Node)],e.prototype,"selfNode",void 0),r([l(cc.Node)],e.prototype,"one",void 0),r([l(cc.Node)],e.prototype,"two",void 0),r([l(cc.Node)],e.prototype,"three",void 0),r([l(cc.Node)],e.prototype,"four",void 0),r([l(cc.Node)],e.prototype,"five",void 0),r([h],e)}(cc.Component);i.default=u,cc._RF.pop()},{"./GameData":"GameData","./crypto/serverAPI":"serverAPI"}],GameTool:[function(t,e){"use strict";var i;cc._RF.push(e,"a1dd7qMiCpOLL3FDXJd9DGy","GameTool");var n=t("Storage").StorageMessage;window.GameTool=((i={_startTime:0,_endTime:0,_totalTime:0,getSeedRandom:function(t,e){e=e||1,t=t||0,GM_INFO.currSeed=(9301*GM_INFO.currSeed+49297)%233280;var i=GM_INFO.currSeed/233280;return parseInt(t+i*(e-t))},getSetScreenResolutionFlag:function(){var t=cc.winSize,e=t.width;return!(t.height/e>16.2/9)},setFit:function(){return GameTool.getSetScreenResolutionFlag()},submitScoreButtonFunc:function(t,e){if(console.log("number=",e),0==e){console.log("\u4e0a\u4f20\u5206\u6570:",t);var i=t;CC_WECHATGAME?window.wx.postMessage({messageType:3,MAIN_MENU_FEN:"score",MAIN_MENU_NUM:"fen",score:i,fen:0}):cc.log("\u63d0\u4ea4\u5f97\u5206: x1 : "+i)}else console.log("\u4e0a\u4f20\u7279\u6b8a\u5206\u6570:",t),i=t,CC_WECHATGAME?window.wx.postMessage({messageType:7,MAIN_MENU_FEN:"score",MAIN_MENU_NUM:"fen",score:0,fen:i}):cc.log("\u63d0\u4ea4\u5f97\u5206: x1 : "+i);return!0},getTip:function(){switch(Math.floor(4*Math.random())+1){case 1:return"\u6839\u636e\u5c0f\u7403\u7684\u4f4d\u7f6e\uff0c\u5408\u7406\u6643\u52a8\u624b\u673a\uff0c\u786e\u4fdd\u5c0f\u7403\u4e0d\u6389\u51fa\u6728\u677f\u3002";case 2:return"\u6839\u636e\u5c0f\u7403\u4f4d\u7f6e\u63a7\u5236\u6643\u52a8\u5e45\u5ea6\uff0c\u8fc7\u5927\u6216\u8fc7\u5c0f\u90fd\u4e0d\u662f\u4e2a\u597d\u9009\u62e9\u3002";case 3:return"\u4e0d\u8981\u88ab\u5929\u4e0a\u6389\u843d\u7684\u969c\u788d\u5413\u5230\uff0c\u6709\u65f6\u5019\u5b83\u53cd\u800c\u4f1a\u5e2e\u4f60\u4fdd\u6301\u5e73\u8861\u3002";case 4:return"\u5c1d\u8bd5\u7740\u9876\u5f00\u6389\u843d\u7684\u969c\u788d\uff0c\u662f\u4e2a\u5f88\u9177\u7684\u73a9\u6cd5\u3002"}},beginTiming:function(){this._startTime=(new Date).getTime()},endTiming:function(){this._endTime=(new Date).getTime()},updateScoreTime:function(){var t=(new Date).getTime(),e=t-this._startTime;(e<0||e>500)&&(e=Math.round(1e3*cc.director.getAnimationInterval())),this._endTime+=e/1e3,this._totalTime=this._endTime.toFixed(2),GM_INFO.currScore=this._totalTime,this._startTime=t},countDown:function(){this._endTime=(new Date).getTime(),this._totalTime=parseInt((this._endTime-this._startTime)/1e3),GM_INFO.remainingTime=GM_INFO.totalTime-this._totalTime},httpRequest:function(t,e,i,n){console.log("\u8fdb\u5165\u7f51\u7edc\u8bf7\u6c42:"),wx.getNetworkType({success:function(o){var r=o.networkType;"wifi"==r||"4g"==r||"3g"==r||"unknown"==r?wx.request({url:window.globalData.requestAPI+t,data:e,header:{"content-type":"application/json",Authorization:window.globalData.BASE64_JWT_TOKEN?"Bearer "+window.globalData.BASE64_JWT_TOKEN:""},method:"POST",success:function(t){console.log("httpRequest:::::success",t),i(t)},fail:function(e){console.log("httpRequest:::::fail",e,"\u5931\u8d25url\u4e3a",t),n(e)}}):n(o)},fail:function(t){n(t)}})},httpRequest_Notoken:function(t,e,i,n){wx.getNetworkType({success:function(o){var r=o.networkType;"wifi"==r||"4g"==r||"3g"==r||"unknown"==r?wx.request({url:window.globalData.requestAPI+t,data:e,header:{"content-type":"application/json"},method:"POST",success:function(t){console.log("httpRequest:::::success",t),i(t)},fail:function(e){console.log("httpRequest:::::fail",e,"\u5931\u8d25url\u4e3a",t),n(e)}}):n(o)},fail:function(t){n(t)}})},getGameInfo:function(){var t=!1,e={appid:window.globalData.appid};return window.GameTool.httpRequest(window.globalData.getUserInfoUrl,e,function(e){window.globalData.gameUserInfo=e.data.king_user,console.log("\u62ff\u5230\u670d\u52a1\u5668\u7684\u4fe1\u606f",e.data),window.globalData.gameUserInfo?(console.log("\u83b7\u5f97\u670d\u52a1\u5668\u6e38\u620f\u4fe1\u606f\u6210\u529f:",window.globalData.gameUserInfo),window.globalData.gameUserInfo.unlock_1&&(window.GM_INFO.unlock_1=window.globalData.gameUserInfo.unlock_1),window.globalData.gameUserInfo.unlock_2&&(window.GM_INFO.unlock_2=window.globalData.gameUserInfo.unlock_2),window.globalData.gameUserInfo.coin?n.getStorage("Coin")?window.globalData.gameUserInfo.coin!=n.getStorage("Coin")&&(window.GM_INFO.coin=n.getStorage("Coin"),n.setStorage("Coin",window.GM_INFO.coin)):(window.GM_INFO.coin=window.globalData.gameUserInfo.coin,n.setStorage("Coin",window.GM_INFO.coin)):n.getStorage("Coin")?(window.GM_INFO.coin=n.getStorage("Coin"),n.setStorage("Coin",window.GM_INFO.coin)):(window.GM_INFO.coin=200,n.setStorage("Coin",window.GM_INFO.coin)),cc.director.loadScene("GameBegin"),CC_WECHATGAME&&(wx.onShow(function(t){t&&t.query&&(console.log("\u5206\u4eab\u4e2d\u5e26\u7684\u4fe1\u606f",t.query),t.query.key1&&window.GameTool.setFrindHelp(t.query.key1),t.query.key2&&window.GameTool.setFrindBlock(t.query.key2),t.query.key3&&window.GameTool.setFrindBlockMax(t.query.key3))}),wx.onHide(function(){console.log("\u68c0\u6d4b\u9000\u51fa\u6e38\u620f"),window.GameTool.submitScoreButtonFunc(window.GM_INFO.level,window.GM_INFO.coin),window.GameTool.setGameInfo()})),t=!0):(console.log("\u62ff\u5230\u670d\u52a1\u5668\u4fe1\u606f\u5931\u8d25"),cc.director.loadScene("LoadScene"))},function(){t=!1,console.log("get\u7528\u6237\u4fe1\u606f\u5931\u8d25",res)}),t},reset:function(){console.log("\u672c\u5730\u6570\u636e\u4e22\u5931,\u91cd\u65b0\u542f\u52a8\u6e38\u620f"),cc.director.loadScene("LoadScene")},setGameInfo:function(t){var e={};window.GameTool.httpRequest(window.globalData.richest,e,function(e){console.log("\u5b58\u50a8userInfo\u6210\u529f",e),t||(window.GM_INFO.leave_time=e.data.leave_time,n.setStorage("leave_time",window.GM_INFO.leave_time))},function(i){console.log("\u5b58\u50a8userInfo\u5931\u8d25",i),t||(window.GM_INFO.leave_time=parseInt((new Date).valueOf()/1e3),n.setStorage("leave_time",e))})},getTimeMargin:function(t){var e=t,i=parseInt(e/3600),n=parseInt((e-3600*i)/60);return"\u5269\u4f59:"+i+":"+n+":"+(e-3600*i-60*n)},getTimeMargin2:function(t){var e=t,i=parseInt(e/3600),n=parseInt((e-3600*i)/60);n<10&&(n="0"+n);var o=e-3600*i-60*n;return o<10&&(o="0"+o),"\u5269\u4f59:"+n+":"+o},setFrindBlock:function(t){var e={user_id:t};window.GameTool.httpRequest(window.globalData.entryBlock,e,function(t){console.log("\u6dfb\u52a0\u7ea2\u5305\u52a9\u529b\u4fe1\u606f\u6210\u529f",t)},function(t){console.log("\u6dfb\u52a0\u7ea2\u5305\u52a9\u529b\u4fe1\u606f\u5931\u8d25",t)})}}).getSeedRandom=function(t,e){e=e||1,t=t||0,GM_INFO.currSeed=(9301*GM_INFO.currSeed+49297)%233280;var i=GM_INFO.currSeed/233280;return parseInt(t+i*(e-t))},i.getTime=function(t){var e=parseInt(t/60),i=t-60*e;return e<10&&(e="0"+e),i<10&&(i="0"+i),e+":"+i},i.getNumber=function(t,e){var i=e-3;return t>Math.pow(1e3,8)*Math.pow(10,i)?t/Math.pow(1e3,8)<100?parseInt(t/Math.pow(1e3,8)*10)/10+"S":parseInt(t/Math.pow(1e3,8))+"S":t>Math.pow(1e3,7)*Math.pow(10,i)?t/Math.pow(1e3,7)<100?parseInt(t/Math.pow(1e3,7)*10)/10+"s":parseInt(t/Math.pow(1e3,7))+"s":t>Math.pow(1e3,6)*Math.pow(10,i)?t/Math.pow(1e3,6)<100?parseInt(t/Math.pow(1e3,6)*10)/10+"Q":parseInt(t/Math.pow(1e3,6))+"Q":t>Math.pow(1e3,5)*Math.pow(10,i)?t/Math.pow(1e3,5)<100?parseInt(t/Math.pow(1e3,5)*10)/10+"q":parseInt(t/Math.pow(1e3,5))+"q":t>Math.pow(1e3,4)*Math.pow(10,i)?t/Math.pow(1e3,4)<100?parseInt(t/Math.pow(1e3,4)*10)/10+"t":parseInt(t/Math.pow(1e3,4))+"t":t>Math.pow(1e3,3)*Math.pow(10,i)?t/Math.pow(1e3,3)<100?parseInt(t/Math.pow(1e3,3)*10)/10+"b":parseInt(t/Math.pow(1e3,3))+"b":t>Math.pow(1e3,2)*Math.pow(10,i)?t/Math.pow(1e3,2)<100?parseInt(t/Math.pow(1e3,2)*10)/10+"m":parseInt(t/Math.pow(1e3,2))+"m":t>Math.pow(1e3,1)*Math.pow(10,i)?t/Math.pow(1e3,1)<100?parseInt(t/Math.pow(1e3,1)*10)/10+"k":parseInt(t/Math.pow(1e3,1))+"k":parseInt(t/Math.pow(1e3,0))+""},i.begainTiming=function(){this._startTime=(new Date).getTime()},i.endTiming=function(){var t=(new Date).getTime();this._endTime=t,this._totalTime=t-this._startTime},i.getScoreTime=function(){var t=(new Date).getTime(),e=t-this._startTime;(e<0||e>500)&&(e=Math.round(1e3*cc.director.getAnimationInterval())),GM_INFO.currScore+=e,this._startTime=t},i.getFormatTime=function(t){var e=new Date;e.setTime(t);var i=e.getMilliseconds(),n=parseInt(i/10)%100,o=e.getSeconds(),r=e.getMinutes();return n<10&&(n="0"+n),o<10&&(o="0"+o),r<10&&(r="0"+r),(r+=":")+(o+=":")+n},i.pushLister=function(){},i.removeAllLister=function(){},i),cc._RF.pop()},{Storage:"Storage"}],GuideManager:[function(t,e,i){"use strict";cc._RF.push(e,"3fd2fh6vHNJeISUizW09xat","GuideManager");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=t("./GameData"),s=t("./Notification"),c=cc._decorator,h=c.ccclass,l=c.property,u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.dialog=null,e.ball=null,e.qiu1=null,e.linePrefab=null,e}return o(e,t),e.prototype.start=function(){this.custom=1,this.init(),this.startGuide(0)},e.prototype.init=function(){this.ball.zIndex=100,this.Pos_Array=[],this.ball_Array=[],this.begin=!1,this.clickNow=0,this.tip=null},e.prototype.startGuide=function(t){var e=this,i="tip"+this.custom;0!=t?cc.tween(this.node).to(.5,{opacity:255}).call(function(){e.custom+=1,0!=t&&(e.custom=2),2==e.custom?e.createSun1():3==e.custom?e.createSun2():4==e.custom?e.begin=!0:5==e.custom&&cc.director.loadScene("GameScene")}).start():(this.tip=this.dialog.getChildByName(i),this.tip.active=!0,this.tip.opacity=0,cc.tween(this.tip).to(.5,{opacity:255}).start())},e.prototype.createSun1=function(){var t=this;this.ball_Array=[],this.Pos_Array.push(cc.v2(-250,-216),cc.v2(200,-115),cc.v2(-35,-500));var e=this.calculateDistance(this.ball.x,this.ball.y,this.Pos_Array[0].x,this.Pos_Array[0].y);this.ball.opacity=0,cc.tween(this.ball).to(e,{position:this.Pos_Array[0]}).call(function(){t.createBall(0,0,0,!1)}).delay(1).call(function(){t.startGuide(0)}).start()},e.prototype.beginClick=function(){for(var t=0;t800&&(a=800),a/800*.8},e.prototype.moveSun=function(){},e.prototype.passLevel=function(){var t=this;this.destroyLine();for(var e=[],i=0,n=this.ball_Array[0],o=1;o0&&this.createLine(cc.v2(this.ball_Array[this.clickNow-1].x,this.ball_Array[this.clickNow-1].y),cc.v2(this.ball_Array[this.clickNow].x,this.ball_Array[this.clickNow].y),.2),this.clickNow+=1,a.default._instance.GM_INFO.total+=1,setTimeout(function(){e.ball_Array[e.clickNow-1]&&(e.ball_Array[e.clickNow-1].getChildByName("guang").active=!1)},200),3==this.clickNow){var i=this.node.getChildByName("Win");i.active=!0,i.setScale(0),cc.tween(i).delay(.4).to(.01,{scale:2.5}).to(.35,{scale:1}).delay(.6).call(function(){i.active=!1,setTimeout(function(){e.passLevel()},400)}).start()}}else{a.default._instance.AudioManager.playWarning(),this.begin=!1,this.loseLevel(1);var n=this.node.getChildByName("Over");cc.tween(n).to(.25,{opacity:255}).delay(.1).to(.2,{opacity:0}).delay(.1).to(.15,{opacity:255}).delay(.1).to(.1,{opacity:0}).start()}},e.prototype.loseLevel=function(){var t=this;this.destroyLine();for(var e=this.ball_Array[0],i=function(i){cc.tween(n.ball_Array[i]).to(.6,{x:e.x,y:e.y}).call(function(){t.ball_Array[i].active=!1,i==t.ball_Array.length-1&&(t.ball.opacity=0,t.ball.position=cc.v3(e.x,e.y,0),t.clearSun(),t.custom=1,t.startGuide(1))}).start()},n=this,o=1;o=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=t("./GameData"),s=t("./ListView/List"),c=t("./crypto/serverAPI"),h=cc._decorator,l=h.ccclass,u=h.property,p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Player=null,e.selfNode=null,e.phone=null,e}return o(e,t),e.prototype.onLoad=function(){this.rankList=cc.find("ScrollView",this.node).getComponent(s.default),this.listData=[],this.selfData=null,this.rankNumber=100,this.rankTotal=100,this.selfNode.opacity=0},e.prototype.start=function(){this.getRank()},e.prototype.getRankData=function(t){if(t){console.log(t),this.listData=t.data.list,this.selfData=t.data.info;for(var e=[],i=!1,n=0;n<=this.listData.length-1;n++)e.push({rank:n+1,name:this.listData[n].nickName,total:this.listData[n].totalSunCount,pic:this.listData[n].pic}),a.default._instance.GM_INFO.userId==this.listData[n].userId&&(i=!0,this.rankNumber=n,this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string=n+1+""),n==this.listData.length-1&&0==i&&(this.rankNumber=n,this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string="99+");this.rankList.setData(e),this.selfData.nickName.length>6&&(this.selfData.nickName=this.selfData.nickName.substring(0,6)+"..."),this.selfNode.getChildByName("nameLab").getComponent(cc.Label).string=this.selfData.nickName,this.selfNode.getChildByName("totalLab").getComponent(cc.Label).string=this.selfData.totalSunCount,this.setPic(this.selfData.pic),this.setPic2(this.selfData.pic),"1"==this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string?this.selfNode.getChildByName("rank").getChildByName("one").active=!0:"2"==this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string?this.selfNode.getChildByName("rank").getChildByName("two").active=!0:"3"==this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string&&(this.selfNode.getChildByName("rank").getChildByName("three").active=!0),this.selfNode.opacity=255}},e.prototype.backClick=function(){cc.director.loadScene("LoadScene")},e.prototype.playerAction=function(){var t=this,e=1;this.tween=cc.tween(this.Player).to(2,{position:cc.v3(210,453,0)}).start(),e=(this.listData.length-this.rankNumber)/this.listData.length,this.listData.length>=99&&this.rankNumber>=99&&(e=(49*Math.random()+1)/100),setTimeout(function(){t.tween&&t.tween.stop()},2e3*e)},e.prototype.getRank=function(){c.default.rankData(2,this.getRankData.bind(this),{page:1,pageSize:100})},e.prototype.setPic=function(t){var e=this;this.phone.node.parent.getChildByName("icon").active=!1,this.phone.node.active=!1;var i=t;fetch(i).then(function(t){return t.headers.get("Content-Length")}).then(function(t){"5093"==t&&(e.phone.node.parent.getChildByName("icon").active=!0)}).catch(function(t){console.error("Error fetching X-Info:",t)});var n=this;cc.assetManager.loadRemote(i,{ext:".jpg"},function(t,i){i?(e.phone.node.active=!0,n.phone.spriteFrame=new cc.SpriteFrame(i)):console.log(t,i)})},e.prototype.setPic2=function(t){var e=this;this.Player.getChildByName("mask").getChildByName("icon").active=!1,this.Player.getChildByName("mask").getChildByName("phone").active=!1;var i=t;fetch(i).then(function(t){return t.headers.get("Content-Length")}).then(function(t){"5093"==t&&(e.Player.getChildByName("mask").getChildByName("icon").active=!0)}).catch(function(t){console.error("Error fetching X-Info:",t)}),cc.assetManager.loadRemote(i,{ext:".jpg"},function(t,i){i?(e.Player.getChildByName("mask").getChildByName("phone").active=!0,e.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(i),setTimeout(function(){e.playerAction()},500)):(console.log(t,i),setTimeout(function(){e.playerAction()},500))})},r([u(cc.Node)],e.prototype,"Player",void 0),r([u(cc.Node)],e.prototype,"selfNode",void 0),r([u(cc.Sprite)],e.prototype,"phone",void 0),r([l],e)}(cc.Component);i.default=p,cc._RF.pop()},{"./GameData":"GameData","./ListView/List":"List","./crypto/serverAPI":"serverAPI"}],ItemRender:[function(t,e,i){"use strict";cc._RF.push(e,"ca0f9k0oBVDbpQC+OMNTF3m","ItemRender");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=cc._decorator,s=a.ccclass,c=(a.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=null,e.itemIndex=0,e}return o(e,t),e.prototype.dataChanged=function(){this.data.name.length>6&&(this.data.name=this.data.name.substring(0,6)+"..."),this.node.getChildByName("rankLab").getComponent(cc.Label).string=this.data.rank+"",this.node.getChildByName("nameLab").getComponent(cc.Label).string=this.data.name+"",this.node.getChildByName("totalLab").getComponent(cc.Label).string=this.data.total+"",this.node.getChildByName("rank").getChildByName("one").active=!1,this.node.getChildByName("rank").getChildByName("two").active=!1,this.node.getChildByName("rank").getChildByName("three").active=!1,1==this.data.rank?(this.node.getChildByName("rank").getChildByName("one").active=!0,this.node.getChildByName("rankLab").active=!1):2==this.data.rank?(this.node.getChildByName("rank").getChildByName("two").active=!0,this.node.getChildByName("rankLab").active=!1):3==this.data.rank?(this.node.getChildByName("rank").getChildByName("three").active=!0,this.node.getChildByName("rankLab").active=!1):this.node.getChildByName("rankLab").active=!0,this.setPic()},e.prototype.setPic=function(){var t=this;this.node.getChildByName("pic").getChildByName("icon").active=!1,this.node.getChildByName("pic").getChildByName("pic").active=!1;var e=this.data.pic;fetch(e).then(function(t){return t.headers.get("Content-Length")}).then(function(e){"5093"==e&&(t.node.getChildByName("pic").getChildByName("icon").active=!0)}).catch(function(t){console.error("Error fetching X-Info:",t)}),cc.assetManager.loadRemote(e,{ext:".jpg"},function(e,i){i?(t.node.getChildByName("pic").getChildByName("pic").active=!0,t.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(i)):console.log(e,i)})},r([s],e)}(cc.Component));i.default=c,cc._RF.pop()},{}],List:[function(t,e,i){"use strict";cc._RF.push(e,"d5421HgLShFKIjj5f18m1mi","List");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0}),i.StartAxisType=i.ListType=void 0;var a,s,c=t("./ItemRender"),h=cc._decorator,l=h.ccclass,u=h.property;(function(t){t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical",t[t.Grid=3]="Grid"})(a=i.ListType||(i.ListType={})),function(t){t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical"}(s=i.StartAxisType||(i.StartAxisType={}));var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.itemRender=null,e.type=a.Vertical,e.startAxis=s.Horizontal,e.spaceX=0,e.spaceY=0,e.padding_top=0,e.padding_buttom=0,e.padding_left=0,e._padding=0,e.padding_right=0,e.scrollView=null,e.content=null,e.itemDataList=[],e.spawnCount=0,e.itemList=[],e.itemHeight=0,e.itemWidth=0,e.itemPool=[],e.halfScrollView=0,e.lastContentPosX=0,e.lastContentPosY=0,e.gridRow=0,e.gridCol=0,e.updateTimer=0,e.updateInterval=.1,e.bScrolling=!1,e.updateFun=function(){},e}return o(e,t),e.prototype.onLoad=function(){this.itemHeight=this.itemRender.height,this.itemWidth=this.itemRender.width,this.scrollView=this.node.getComponent(cc.ScrollView),this.content=this.scrollView.content,this.content.anchorX=0,this.content.anchorY=1,this.content.removeAllChildren(),this.scrollView.node.on("scrolling",this.onScrolling,this)},e.prototype.setData=function(t){this.itemDataList=t.slice(),this.updateContent()},e.prototype.countListParam=function(){var t=this.itemDataList.length;this.type==a.Vertical?(this.scrollView.horizontal=!1,this.scrollView.vertical=!0,this.content.width=this.content.parent.width,this.content.height=t*this.itemHeight+(t-1)*this.spaceY+this.padding_top+this.padding_buttom,this.spawnCount=Math.round(this.scrollView.node.height/(this.itemHeight+this.spaceY))+2,this.halfScrollView=this.scrollView.node.height/2+this.itemHeight/2+this.spaceY,this.updateFun=this.updateV):this.type==a.Horizontal?(this.scrollView.horizontal=!0,this.scrollView.vertical=!1,this.content.width=t*this.itemWidth+(t-1)*this.spaceX+this.padding_left+this.padding_right,this.content.height=this.content.parent.height,this.spawnCount=Math.round(this.scrollView.node.width/(this.itemWidth+this.spaceX))+2,this.halfScrollView=this.scrollView.node.width/2+this.itemWidth/2+this.spaceX,this.updateFun=this.udpateH):this.type==a.Grid&&(this.startAxis==s.Vertical?(this.scrollView.horizontal=!1,this.scrollView.vertical=!0,this.content.width=this.content.parent.width,this.padding_left+this.padding_right+this.itemWidth+this.spaceX>this.content.width&&(this.padding_left=0,this.padding_right=0,console.error("padding_left\u6216padding_right\u8fc7\u5927")),this.gridCol=Math.floor((this.content.width-this.padding_left-this.padding_right)/(this.itemWidth+this.spaceX)),this.gridRow=Math.ceil(t/this.gridCol),this.content.height=this.gridRow*this.itemHeight+(this.gridRow-1)*this.spaceY+this.padding_top+this.padding_buttom,this.spawnCount=Math.round(this.scrollView.node.height/(this.itemHeight+this.spaceY))*this.gridCol+2*this.gridCol,this.halfScrollView=this.scrollView.node.height/2+this.itemHeight/2+this.spaceY,this.updateFun=this.updateGrid_V):this.startAxis==s.Horizontal&&(this.scrollView.horizontal=!0,this.scrollView.vertical=!1,this.content.height=this.content.parent.height,this.padding_top+this.padding_buttom+this.itemHeight+this.spaceY>this.content.height&&(this.padding_top=0,this.padding_buttom=0,console.error("padding_top\u6216padding_buttom\u8fc7\u5927")),this.gridRow=Math.floor((this.content.height-this.padding_top-this.padding_buttom)/(this.itemHeight+this.spaceY)),this.gridCol=Math.ceil(t/this.gridRow),this.content.width=this.gridCol*this.itemWidth+(this.gridCol-1)*this.spaceX+this.padding_left+this.padding_right,this.spawnCount=Math.round(this.scrollView.node.width/(this.itemWidth+this.spaceX))*this.gridRow+2*this.gridRow,this.halfScrollView=this.scrollView.node.width/2+this.itemWidth/2+this.spaceX,this.updateFun=this.updateGrid_H))},e.prototype.createList=function(t,e){this.itemDataList.length>this.spawnCount&&t+this.spawnCount-1>=this.itemDataList.length?(t=this.itemDataList.length-this.spawnCount,e=this.scrollView.getMaxScrollOffset()):this.itemDataList.length<=this.spawnCount&&(t=0);for(var i=0;ithis.itemDataList.length-t&&((n=this.itemList.pop()).removeFromParent(),this.itemPool.push(n))}this.scrollView.scrollToOffset(e)},e.prototype.getItem=function(){return 0==this.itemPool.length?cc.instantiate(this.itemRender):this.itemPool.pop()},e.prototype.update=function(t){0!=this.bScrolling&&(this.updateTimer+=t,this.updateTimerthis.lastContentPosY,o=(this.itemHeight+this.spaceY)*e.length,r=0;ri&&t.y-o-this.padding_buttom>-this.content.height){var s=(h=t.getComponent(c.default)).itemIndex+e.length;h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.y=t.y-o}}else if(a.y<-i&&t.y+o+this.padding_top<0){var h;s=(h=t.getComponent(c.default)).itemIndex-e.length,h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.y=t.y+o}}this.lastContentPosY=this.scrollView.content.y},e.prototype.udpateH=function(){for(var t,e=this.itemList,i=this.halfScrollView,n=this.scrollView.content.x>this.lastContentPosX,o=(this.itemWidth+this.spaceX)*e.length,r=0;ri&&t.x-o-this.padding_left>0){var s=(h=t.getComponent(c.default)).itemIndex-e.length;h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.x=t.x-o}}else if(a.x<-i&&t.x+o+this.padding_rightthis.lastContentPosY,o=(this.itemHeight+this.spaceY)*(this.spawnCount/this.gridCol),r=0;ri&&t.y-o-this.padding_buttom>-this.content.height){var s=(h=t.getComponent(c.default)).itemIndex+this.spawnCount/this.gridCol*this.gridCol;null!=this.itemDataList[s]?(t.y=t.y-o,h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.opacity=255):(t.y=t.y-o,h.itemIndex=s,t.opacity=0)}}else if(a.y<-i&&t.y+o+this.padding_top<0){var h;s=(h=t.getComponent(c.default)).itemIndex-this.spawnCount/this.gridCol*this.gridCol,null!=this.itemDataList[s]?(t.y=t.y+o,h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.opacity=255):(t.y=t.y+o,h.itemIndex=s,t.opacity=0)}}this.lastContentPosY=this.scrollView.content.y},e.prototype.updateGrid_H=function(){for(var t,e=this.itemList,i=this.halfScrollView,n=this.scrollView.content.x>this.lastContentPosX,o=(this.itemWidth+this.spaceX)*(this.spawnCount/this.gridRow),r=0;ri&&t.x-o-this.padding_left>0){var s=(h=t.getComponent(c.default)).itemIndex-this.spawnCount/this.gridRow*this.gridRow;null!=this.itemDataList[s]?(t.x=t.x-o,h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.opacity=255):(t.x=t.x-o,h.itemIndex=s,t.opacity=0)}}else if(a.x<-i&&t.x+o+this.padding_right=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=cc._decorator,s=a.ccclass,c=a.property,h=(a.requireComponent,t("./GameData")),l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.text="hello",e}return o(e,t),e.prototype.start=function(){h.default._instance.GM_INFO.userId=this.getUserId(),null==h.default._instance.GM_INFO.userId?window.location.href="http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=http://train.sparkus.cn/test/Sun_moves/":h.default._instance.GM_INFO.userId=parseInt(h.default._instance.GM_INFO.userId)},e.prototype.createTexture=function(){var t=this;cc.assetManager.loadRemote("http://static.sparkus.cn/shoot-sun/assets/resources/native/7a/7a8b41ad-9425-44e2-8f55-7740f12b0e0a.jpg",function(e,i){console.log(e,i),i&&(t.node.getChildByName("icon").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(i))})},e.prototype.getUserId=function(){var t=window.location.search,e=t.split("&");if(t.length>=0&&e.length>0){var i=[];return e.map(function(t){i.push(t.split("=")[1])}),h.default._instance.GM_INFO.userId=i[0]+"",i[0]}return null},e.prototype.startGame=function(){h.default._instance.GM_INFO.custom=0,cc.director.loadScene("GuideScene")},e.prototype.clickBtn=function(t,e){h.default._instance.GM_INFO.custom=parseInt(e),cc.director.loadScene("GameScene")},e.prototype.openLevel=function(){this.node.getChildByName("Level").active=!0},e.prototype.closeBtn=function(){this.node.getChildByName("Level").active=!1},e.prototype.back=function(){},e.prototype.openBtn=function(){h.default._instance.GM_INFO.custom=0,cc.director.loadScene("GuideScene")},e.prototype.openRank=function(){cc.director.loadScene("RankScene")},r([c(cc.Label)],e.prototype,"label",void 0),r([c],e.prototype,"text",void 0),r([s],e)}(cc.Component);i.default=l,cc._RF.pop()},{"./GameData":"GameData"}],Notification:[function(t,e,i){"use strict";cc._RF.push(e,"f2518+0IHRGOY+ueIhGtEeA","Notification"),Object.defineProperty(i,"__esModule",{value:!0}),i.Notification=void 0;i.Notification={_eventMap:[],on:function(t,e,i){void 0===this._eventMap[t]&&(this._eventMap[t]=[]),this._eventMap[t].push({callback:e,target:i})},emit:function(t,e){var i=this._eventMap[t];if(void 0!==i)for(var n=0;n=this.duration&&(this.unschedule(this.doSchedule),this.node.setPosition(this.nodeInitialPos),this.shaking=!1,this.callback&&this.callback())},getRandomStrength:function(t,e){return Math.random()*(e-t+1)+t}}),cc._RF.pop()},{}],Storage:[function(t,e){"use strict";cc._RF.push(e,"b5d92kgCRlKu5IYKnaGPgoa","Storage");var i={getStorage:function(t){var e=null;return cc.sys.localStorage.getItem(t)&&(e=cc.sys.localStorage.getItem(t)),e&&(e=JSON.parse(e)),e},setStorage:function(t,e){var i=JSON.stringify(e);cc.sys.localStorage.setItem(t,i)},removeStorage:function(t){cc.sys.localStorage.getItem(t)&&cc.sys.localStorage.removeItem(t)}};e.exports={StorageMessage:i},cc._RF.pop()},{}],Sun:[function(t,e,i){"use strict";cc._RF.push(e,"4be67sdkexCyqLl0NHd9N1f","Sun");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=cc._decorator,s=a.ccclass,c=(a.property,t("./Notification")),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.prototype.start=function(){this.touch=!0,this.move=!1,this._color=0,this._speed=0;var t=this.node.getChildByName("shan");cc.tween(t).repeatForever(cc.tween().to(1,{opacity:0,scale:.5}).delay(.2).to(1,{opacity:255,scale:1.2}).delay(.5)).start()},e.prototype.init=function(t,e,i,n){this.id_Number=t,this._color=e,this._speed=i,this._repeat=n},e.prototype.showNumber=function(t){this.node.getChildByName("number").active=t,1==t&&(this.node.getChildByName("number").getComponent(cc.Label).string=this.id_Number+"")},e.prototype.clickBtn=function(){this.node.parent.parent.name,0==this.move&&1==this.touch&&("GameNode"==this.node.parent.parent.name?1==this.node.parent.parent.getComponent("GameManager").begin&&(cc.tween(this.node.getChildByName("action")).to(.5,{opacity:0,scale:1.8}).start(),cc.tween(this.node).to(.3,{scale:1.3}).to(.3,{scale:1}).start(),this.touch=!1,this.node.zIndex=-1,c.Notification.emit("clickSun",this.id_Number)):(this.touch=!1,this.node.zIndex=-1,c.Notification.emit("clickSun",this.id_Number)))},e.prototype.clickBtn2=function(){1==this.touch&&1==this.node.parent.parent.getComponent("GuideManager").begin&&(this.touch=!1,this.node.zIndex=-1,c.Notification.emit("clickSun",this.id_Number))},e.prototype.update=function(){},r([s],e)}(cc.Component);i.default=h,cc._RF.pop()},{"./Notification":"Notification"}],"crypto-js.min":[function(t,e,i){"use strict";cc._RF.push(e,"e64e1qXyT9CV6s0gDQdj/ed","crypto-js.min"),function(t,n){"object"==typeof i?e.exports=i=n():"function"==typeof define&&define.amd?define([],n):(void 0).CryptoJS=n()}(0,function(){var t,e,i,n,o,r,a,s=s||function(t){var e=Object.create||function(){function t(){}return function(e){var i;return t.prototype=e,i=new t,t.prototype=null,i}}(),i={},n=i.lib={},o=n.Base={extend:function(t){var i=e(this);return t&&i.mixIn(t),i.hasOwnProperty("init")&&this.init!==i.init||(i.init=function(){i.$super.init.apply(this,arguments)}),i.init.prototype=i,i.$super=this,i},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},r=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||s).stringify(this)},concat:function(t){var e=this.words,i=t.words,n=this.sigBytes,o=t.sigBytes;if(this.clamp(),n%4)for(var r=0;r>>2]>>>24-r%4*8&255;e[n+r>>>2]|=a<<24-(n+r)%4*8}else for(r=0;r>>2]=i[r>>>2];return this.sigBytes+=o,this},clamp:function(){var e=this.words,i=this.sigBytes;e[i>>>2]&=4294967295<<32-i%4*8,e.length=t.ceil(i/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var i,n=[],o=function(e){e=e;var i=987654321,n=4294967295;return function(){var o=((i=36969*(65535&i)+(i>>16)&n)<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n;return o/=4294967296,(o+=.5)*(t.random()>.5?1:-1)}},a=0;a>>2]>>>24-o%4*8&255;n.push((r>>>4).toString(16)),n.push((15&r).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new r.init(i,e/2)}},c=a.Latin1={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>24-o%4*8&255;n.push(String.fromCharCode(r))}return n.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new r.init(i,e)}},h=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(c.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return c.parse(unescape(encodeURIComponent(t)))}},l=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new r.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=h.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var i=this._data,n=i.words,o=i.sigBytes,a=this.blockSize,s=o/(4*a),c=(s=e?t.ceil(s):t.max((0|s)-this._minBufferSize,0))*a,h=t.min(4*c,o);if(c){for(var l=0;l>>6-a%4*2;o[r>>>2]|=(s|c)<<24-r%4*8,r++}return i.create(o,r)}var e=s,i=e.lib.WordArray;e.enc.Base64={stringify:function(t){var e=t.words,i=t.sigBytes,n=this._map;t.clamp();for(var o=[],r=0;r>>2]>>>24-r%4*8&255)<<16|(e[r+1>>>2]>>>24-(r+1)%4*8&255)<<8|e[r+2>>>2]>>>24-(r+2)%4*8&255,s=0;s<4&&r+.75*s>>6*(3-s)&63));var c=n.charAt(64);if(c)for(;o.length%4;)o.push(c);return o.join("")},parse:function(e){var i=e.length,n=this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var r=0;r>>32-r)+e}function i(t,e,i,n,o,r,a){var s=t+(e&n|i&~n)+o+a;return(s<>>32-r)+e}function n(t,e,i,n,o,r,a){var s=t+(e^i^n)+o+a;return(s<>>32-r)+e}function o(t,e,i,n,o,r,a){var s=t+(i^(e|~n))+o+a;return(s<>>32-r)+e}var r=s,a=r.lib,c=a.WordArray,h=a.Hasher,l=r.algo,u=[];!function(){for(var e=0;e<64;e++)u[e]=4294967296*t.abs(t.sin(e+1))|0}();var p=l.MD5=h.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var a=0;a<16;a++){var s=r+a,c=t[s];t[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var h=this._hash.words,l=t[r+0],p=t[r+1],d=t[r+2],f=t[r+3],m=t[r+4],y=t[r+5],v=t[r+6],g=t[r+7],_=t[r+8],b=t[r+9],w=t[r+10],S=t[r+11],A=t[r+12],C=t[r+13],x=t[r+14],N=t[r+15],M=h[0],k=h[1],B=h[2],I=h[3];M=e(M,k,B,I,l,7,u[0]),I=e(I,M,k,B,p,12,u[1]),B=e(B,I,M,k,d,17,u[2]),k=e(k,B,I,M,f,22,u[3]),M=e(M,k,B,I,m,7,u[4]),I=e(I,M,k,B,y,12,u[5]),B=e(B,I,M,k,v,17,u[6]),k=e(k,B,I,M,g,22,u[7]),M=e(M,k,B,I,_,7,u[8]),I=e(I,M,k,B,b,12,u[9]),B=e(B,I,M,k,w,17,u[10]),k=e(k,B,I,M,S,22,u[11]),M=e(M,k,B,I,A,7,u[12]),I=e(I,M,k,B,C,12,u[13]),B=e(B,I,M,k,x,17,u[14]),M=i(M,k=e(k,B,I,M,N,22,u[15]),B,I,p,5,u[16]),I=i(I,M,k,B,v,9,u[17]),B=i(B,I,M,k,S,14,u[18]),k=i(k,B,I,M,l,20,u[19]),M=i(M,k,B,I,y,5,u[20]),I=i(I,M,k,B,w,9,u[21]),B=i(B,I,M,k,N,14,u[22]),k=i(k,B,I,M,m,20,u[23]),M=i(M,k,B,I,b,5,u[24]),I=i(I,M,k,B,x,9,u[25]),B=i(B,I,M,k,f,14,u[26]),k=i(k,B,I,M,_,20,u[27]),M=i(M,k,B,I,C,5,u[28]),I=i(I,M,k,B,d,9,u[29]),B=i(B,I,M,k,g,14,u[30]),M=n(M,k=i(k,B,I,M,A,20,u[31]),B,I,y,4,u[32]),I=n(I,M,k,B,_,11,u[33]),B=n(B,I,M,k,S,16,u[34]),k=n(k,B,I,M,x,23,u[35]),M=n(M,k,B,I,p,4,u[36]),I=n(I,M,k,B,m,11,u[37]),B=n(B,I,M,k,g,16,u[38]),k=n(k,B,I,M,w,23,u[39]),M=n(M,k,B,I,C,4,u[40]),I=n(I,M,k,B,l,11,u[41]),B=n(B,I,M,k,f,16,u[42]),k=n(k,B,I,M,v,23,u[43]),M=n(M,k,B,I,b,4,u[44]),I=n(I,M,k,B,A,11,u[45]),B=n(B,I,M,k,N,16,u[46]),M=o(M,k=n(k,B,I,M,d,23,u[47]),B,I,l,6,u[48]),I=o(I,M,k,B,g,10,u[49]),B=o(B,I,M,k,x,15,u[50]),k=o(k,B,I,M,y,21,u[51]),M=o(M,k,B,I,A,6,u[52]),I=o(I,M,k,B,f,10,u[53]),B=o(B,I,M,k,w,15,u[54]),k=o(k,B,I,M,p,21,u[55]),M=o(M,k,B,I,_,6,u[56]),I=o(I,M,k,B,N,10,u[57]),B=o(B,I,M,k,v,15,u[58]),k=o(k,B,I,M,C,21,u[59]),M=o(M,k,B,I,m,6,u[60]),I=o(I,M,k,B,S,10,u[61]),B=o(B,I,M,k,d,15,u[62]),k=o(k,B,I,M,b,21,u[63]),h[0]=h[0]+M|0,h[1]=h[1]+k|0,h[2]=h[2]+B|0,h[3]=h[3]+I|0},_doFinalize:function(){var e=this._data,i=e.words,n=8*this._nDataBytes,o=8*e.sigBytes;i[o>>>5]|=128<<24-o%32;var r=t.floor(n/4294967296),a=n;i[15+(o+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),i[14+(o+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(i.length+1),this._process();for(var s=this._hash,c=s.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return s},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});r.MD5=h._createHelper(p),r.HmacMD5=h._createHmacHelper(p)}(Math),e=(t=s).lib,i=e.WordArray,n=e.Hasher,o=t.algo,r=[],a=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],o=i[1],a=i[2],s=i[3],c=i[4],h=0;h<80;h++){if(h<16)r[h]=0|t[e+h];else{var l=r[h-3]^r[h-8]^r[h-14]^r[h-16];r[h]=l<<1|l>>>31}var u=(n<<5|n>>>27)+c+r[h];u+=h<20?1518500249+(o&a|~o&s):h<40?1859775393+(o^a^s):h<60?(o&a|o&s|a&s)-1894007588:(o^a^s)-899497514,c=s,s=a,a=o<<30|o>>>2,o=n,n=u}i[0]=i[0]+n|0,i[1]=i[1]+o|0,i[2]=i[2]+a|0,i[3]=i[3]+s|0,i[4]=i[4]+c|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=Math.floor(i/4294967296),e[15+(n+64>>>9<<4)]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),t.SHA1=n._createHelper(a),t.HmacSHA1=n._createHmacHelper(a),function(t){var e=s,i=e.lib,n=i.WordArray,o=i.Hasher,r=e.algo,a=[],c=[];!function(){function e(e){for(var i=t.sqrt(e),n=2;n<=i;n++)if(!(e%n))return!1;return!0}function i(t){return 4294967296*(t-(0|t))|0}for(var n=2,o=0;o<64;)e(n)&&(o<8&&(a[o]=i(t.pow(n,.5))),c[o]=i(t.pow(n,1/3)),o++),n++}();var h=[],l=r.SHA256=o.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],o=i[1],r=i[2],a=i[3],s=i[4],l=i[5],u=i[6],p=i[7],d=0;d<64;d++){if(d<16)h[d]=0|t[e+d];else{var f=h[d-15],m=(f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3,y=h[d-2],v=(y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10;h[d]=m+h[d-7]+v+h[d-16]}var g=n&o^n&r^o&r,_=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),b=p+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&l^~s&u)+c[d]+h[d];p=u,u=l,l=s,s=a+b|0,a=r,r=o,o=n,n=b+(_+g)|0}i[0]=i[0]+n|0,i[1]=i[1]+o|0,i[2]=i[2]+r|0,i[3]=i[3]+a|0,i[4]=i[4]+s|0,i[5]=i[5]+l|0,i[6]=i[6]+u|0,i[7]=i[7]+p|0},_doFinalize:function(){var e=this._data,i=e.words,n=8*this._nDataBytes,o=8*e.sigBytes;return i[o>>>5]|=128<<24-o%32,i[14+(o+64>>>9<<4)]=t.floor(n/4294967296),i[15+(o+64>>>9<<4)]=n,e.sigBytes=4*i.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),function(){function t(t){return t<<8&4278255360|t>>>8&16711935}var e=s,i=e.lib.WordArray,n=e.enc;n.Utf16=n.Utf16BE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535;n.push(String.fromCharCode(r))}return n.join("")},parse:function(t){for(var e=t.length,n=[],o=0;o>>1]|=t.charCodeAt(o)<<16-o%2*16;return i.create(n,2*e)}},n.Utf16LE={stringify:function(e){for(var i=e.words,n=e.sigBytes,o=[],r=0;r>>2]>>>16-r%4*8&65535);o.push(String.fromCharCode(a))}return o.join("")},parse:function(e){for(var n=e.length,o=[],r=0;r>>1]|=t(e.charCodeAt(r)<<16-r%2*16);return i.create(o,2*n)}}}(),function(){if("function"==typeof ArrayBuffer){var t=s.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var i=t.byteLength,n=[],o=0;o>>2]|=t[o]<<24-o%4*8;e.call(this,n,i)}else e.apply(this,arguments)}).prototype=t}}(),function(){function t(t,e,i){return t^e^i}function e(t,e,i){return t&e|~t&i}function i(t,e,i){return(t|~e)^i}function n(t,e,i){return t&i|e&~i}function o(t,e,i){return t^(e|~i)}function r(t,e){return t<>>32-e}var a=s,c=a.lib,h=c.WordArray,l=c.Hasher,u=a.algo,p=h.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),d=h.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),f=h.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),m=h.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=h.create([0,1518500249,1859775393,2400959708,2840853838]),v=h.create([1352829926,1548603684,1836072691,2053994217,0]),g=u.RIPEMD160=l.extend({_doReset:function(){this._hash=h.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(a,s){for(var c=0;c<16;c++){var h=s+c,l=a[h];a[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var u,g,_,b,w,S,A,C,x,N,M,k=this._hash.words,B=y.words,I=v.words,D=p.words,P=d.words,L=f.words,O=m.words;for(S=u=k[0],A=g=k[1],C=_=k[2],x=b=k[3],N=w=k[4],c=0;c<80;c+=1)M=u+a[s+D[c]]|0,M+=c<16?t(g,_,b)+B[0]:c<32?e(g,_,b)+B[1]:c<48?i(g,_,b)+B[2]:c<64?n(g,_,b)+B[3]:o(g,_,b)+B[4],M=(M=r(M|=0,L[c]))+w|0,u=w,w=b,b=r(_,10),_=g,g=M,M=S+a[s+P[c]]|0,M+=c<16?o(A,C,x)+I[0]:c<32?n(A,C,x)+I[1]:c<48?i(A,C,x)+I[2]:c<64?e(A,C,x)+I[3]:t(A,C,x)+I[4],M=(M=r(M|=0,O[c]))+N|0,S=N,N=x,x=r(C,10),C=A,A=M;M=k[1]+_+x|0,k[1]=k[2]+b+N|0,k[2]=k[3]+w+S|0,k[3]=k[4]+u+A|0,k[4]=k[0]+g+C|0,k[0]=M},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t.sigBytes=4*(e.length+1),this._process();for(var o=this._hash,r=o.words,a=0;a<5;a++){var s=r[a];r[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return o},clone:function(){var t=l.clone.call(this);return t._hash=this._hash.clone(),t}});a.RIPEMD160=l._createHelper(g),a.HmacRIPEMD160=l._createHmacHelper(g)}(Math),function(){var t=s,e=t.lib.Base,i=t.enc.Utf8;t.algo.HMAC=e.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=i.parse(e));var n=t.blockSize,o=4*n;e.sigBytes>o&&(e=t.finalize(e)),e.clamp();for(var r=this._oKey=e.clone(),a=this._iKey=e.clone(),s=r.words,c=a.words,h=0;h>>24)|4278255360&(r<<24|r>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(k=i[o]).high^=a,k.low^=r}for(var s=0;s<24;s++){for(var p=0;p<5;p++){for(var d=0,f=0,m=0;m<5;m++)d^=(k=i[p+5*m]).high,f^=k.low;var y=u[p];y.high=d,y.low=f}for(p=0;p<5;p++){var v=u[(p+4)%5],g=u[(p+1)%5],_=g.high,b=g.low;for(d=v.high^(_<<1|b>>>31),f=v.low^(b<<1|_>>>31),m=0;m<5;m++)(k=i[p+5*m]).high^=d,k.low^=f}for(var w=1;w<25;w++){var S=(k=i[w]).high,A=k.low,C=c[w];C<32?(d=S<>>32-C,f=A<>>32-C):(d=A<>>64-C,f=S<>>64-C);var x=u[h[w]];x.high=d,x.low=f}var N=u[0],M=i[0];for(N.high=M.high,N.low=M.low,p=0;p<5;p++)for(m=0;m<5;m++){var k=i[w=p+5*m],B=u[w],I=u[(p+1)%5+5*m],D=u[(p+2)%5+5*m];k.high=B.high^~I.high&D.high,k.low=B.low^~I.low&D.low}k=i[0];var P=l[s];k.high^=P.high,k.low^=P.low}},_doFinalize:function(){var e=this._data,i=e.words,o=(this._nDataBytes,8*e.sigBytes),r=32*this.blockSize;i[o>>>5]|=1<<24-o%32,i[(t.ceil((o+1)/r)*r>>>5)-1]|=128,e.sigBytes=4*i.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,c=s/8,h=[],l=0;l>>24)|4278255360&(p<<24|p>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(p)}return new n.init(h,s)},clone:function(){for(var t=o.clone.call(this),e=t._state=this._state.slice(0),i=0;i<25;i++)e[i]=e[i].clone();return t}});e.SHA3=o._createHelper(p),e.HmacSHA3=o._createHmacHelper(p)}(Math),function(){function t(){return o.create.apply(o,arguments)}var e=s,i=e.lib.Hasher,n=e.x64,o=n.Word,r=n.WordArray,a=e.algo,c=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],h=[];!function(){for(var e=0;e<80;e++)h[e]=t()}();var l=a.SHA512=i.extend({_doReset:function(){this._hash=new r.init([new o.init(1779033703,4089235720),new o.init(3144134277,2227873595),new o.init(1013904242,4271175723),new o.init(2773480762,1595750129),new o.init(1359893119,2917565137),new o.init(2600822924,725511199),new o.init(528734635,4215389547),new o.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],o=i[1],r=i[2],a=i[3],s=i[4],l=i[5],u=i[6],p=i[7],d=n.high,f=n.low,m=o.high,y=o.low,v=r.high,g=r.low,_=a.high,b=a.low,w=s.high,S=s.low,A=l.high,C=l.low,x=u.high,N=u.low,M=p.high,k=p.low,B=d,I=f,D=m,P=y,L=v,O=g,R=_,T=b,F=w,G=S,H=A,E=C,z=x,j=N,V=M,q=k,W=0;W<80;W++){var U=h[W];if(W<16)var X=U.high=0|t[e+2*W],K=U.low=0|t[e+2*W+1];else{var Y=h[W-15],J=Y.high,Z=Y.low,Q=(J>>>1|Z<<31)^(J>>>8|Z<<24)^J>>>7,$=(Z>>>1|J<<31)^(Z>>>8|J<<24)^(Z>>>7|J<<25),tt=h[W-2],et=tt.high,it=tt.low,nt=(et>>>19|it<<13)^(et<<3|it>>>29)^et>>>6,ot=(it>>>19|et<<13)^(it<<3|et>>>29)^(it>>>6|et<<26),rt=h[W-7],at=rt.high,st=rt.low,ct=h[W-16],ht=ct.high,lt=ct.low;X=(X=(X=Q+at+((K=$+st)>>>0<$>>>0?1:0))+nt+((K+=ot)>>>0>>0?1:0))+ht+((K+=lt)>>>0>>0?1:0),U.high=X,U.low=K}var ut,pt=F&H^~F&z,dt=G&E^~G&j,ft=B&D^B&L^D&L,mt=I&P^I&O^P&O,yt=(B>>>28|I<<4)^(B<<30|I>>>2)^(B<<25|I>>>7),vt=(I>>>28|B<<4)^(I<<30|B>>>2)^(I<<25|B>>>7),gt=(F>>>14|G<<18)^(F>>>18|G<<14)^(F<<23|G>>>9),_t=(G>>>14|F<<18)^(G>>>18|F<<14)^(G<<23|F>>>9),bt=c[W],wt=bt.high,St=bt.low,At=V+gt+((ut=q+_t)>>>0>>0?1:0),Ct=vt+mt;V=z,q=j,z=H,j=E,H=F,E=G,F=R+(At=(At=(At=At+pt+((ut+=dt)>>>0
>>0?1:0))+wt+((ut+=St)>>>0>>0?1:0))+X+((ut+=K)>>>0>>0?1:0))+((G=T+ut|0)>>>0>>0?1:0)|0,R=L,T=O,L=D,O=P,D=B,P=I,B=At+(yt+ft+(Ct>>>0>>0?1:0))+((I=ut+Ct|0)>>>0>>0?1:0)|0}f=n.low=f+I,n.high=d+B+(f>>>0>>0?1:0),y=o.low=y+P,o.high=m+D+(y>>>0

>>0?1:0),g=r.low=g+O,r.high=v+L+(g>>>0>>0?1:0),b=a.low=b+T,a.high=_+R+(b>>>0>>0?1:0),S=s.low=S+G,s.high=w+F+(S>>>0>>0?1:0),C=l.low=C+E,l.high=A+H+(C>>>0>>0?1:0),N=u.low=N+j,u.high=x+z+(N>>>0>>0?1:0),k=p.low=k+q,p.high=M+V+(k>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(i/4294967296),e[31+(n+128>>>10<<5)]=i,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=i._createHelper(l),e.HmacSHA512=i._createHmacHelper(l)}(),function(){var t=s,e=t.x64,i=e.Word,n=e.WordArray,o=t.algo,r=o.SHA512,a=o.SHA384=r.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=r._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=r._createHelper(a),t.HmacSHA384=r._createHmacHelper(a)}(),s.lib.Cipher||function(t){var e=s,i=e.lib,n=i.Base,o=i.WordArray,r=i.BufferedBlockAlgorithm,a=e.enc,c=(a.Utf8,a.Base64),h=e.algo.EvpKDF,l=i.Cipher=r.extend({cfg:n.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,i){this.cfg=this.cfg.extend(i),this._xformMode=t,this._key=e,this.reset()},reset:function(){r.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?_:v}return function(e){return{encrypt:function(i,n,o){return t(n).encrypt(e,i,n,o)},decrypt:function(i,n,o){return t(n).decrypt(e,i,n,o)}}}}()}),u=(i.StreamCipher=l.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),p=i.BlockCipherMode=n.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),d=u.CBC=function(){function e(e,i,n){var o=this._iv;if(o){var r=o;this._iv=t}else r=this._prevBlock;for(var a=0;a>>2];t.sigBytes-=e}},m=(i.BlockCipher=l.extend({cfg:l.cfg.extend({mode:d,padding:f}),reset:function(){l.reset.call(this);var t=this.cfg,e=t.iv,i=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=i.createEncryptor;else n=i.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==n?this._mode.init(this,e&&e.words):(this._mode=n.call(i,this,e&&e.words),this._mode.__creator=n)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else e=this._process(!0),t.unpad(e);return e},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,i=t.salt;if(i)var n=o.create([1398893684,1701076831]).concat(i).concat(e);else n=e;return n.toString(c)},parse:function(t){var e=c.parse(t),i=e.words;if(1398893684==i[0]&&1701076831==i[1]){var n=o.create(i.slice(2,4));i.splice(0,4),e.sigBytes-=16}return m.create({ciphertext:e,salt:n})}},v=i.SerializableCipher=n.extend({cfg:n.extend({format:y}),encrypt:function(t,e,i,n){n=this.cfg.extend(n);var o=t.createEncryptor(i,n),r=o.finalize(e),a=o.cfg;return m.create({ciphertext:r,key:i,iv:a.iv,algorithm:t,mode:a.mode,padding:a.padding,blockSize:t.blockSize,formatter:n.format})},decrypt:function(t,e,i,n){return n=this.cfg.extend(n),e=this._parse(e,n.format),t.createDecryptor(i,n).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),g=(e.kdf={}).OpenSSL={execute:function(t,e,i,n){n||(n=o.random(8));var r=h.create({keySize:e+i}).compute(t,n),a=o.create(r.words.slice(e),4*i);return r.sigBytes=4*e,m.create({key:r,iv:a,salt:n})}},_=i.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:g}),encrypt:function(t,e,i,n){var o=(n=this.cfg.extend(n)).kdf.execute(i,t.keySize,t.ivSize);n.iv=o.iv;var r=v.encrypt.call(this,t,e,o.key,n);return r.mixIn(o),r},decrypt:function(t,e,i,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var o=n.kdf.execute(i,t.keySize,t.ivSize,e.salt);return n.iv=o.iv,v.decrypt.call(this,t,e,o.key,n)}})}(),s.mode.CFB=function(){function t(t,e,i,n){var o=this._iv;if(o){var r=o.slice(0);this._iv=void 0}else r=this._prevBlock;n.encryptBlock(r,0);for(var a=0;a>>2]|=o<<24-r%4*8,t.sigBytes+=o},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},s.pad.Iso10126={pad:function(t,e){var i=4*e,n=i-t.sigBytes%i;t.concat(s.lib.WordArray.random(n-1)).concat(s.lib.WordArray.create([n<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},s.pad.Iso97971={pad:function(t,e){t.concat(s.lib.WordArray.create([2147483648],1)),s.pad.ZeroPadding.pad(t,e)},unpad:function(t){s.pad.ZeroPadding.unpad(t),t.sigBytes--}},s.mode.OFB=function(){var t=s.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,o=this._iv,r=this._keystream;o&&(r=this._keystream=o.slice(0),this._iv=void 0),i.encryptBlock(r,0);for(var a=0;a>>8^255&f^99,n[i]=f,o[f]=i;var m=t[i],y=t[m],v=t[y],g=257*t[f]^16843008*f;r[i]=g<<24|g>>>8,a[i]=g<<16|g>>>16,c[i]=g<<8|g>>>24,h[i]=g,g=16843009*v^65537*y^257*m^16843008*i,l[f]=g<<24|g>>>8,u[f]=g<<16|g>>>16,p[f]=g<<8|g>>>24,d[f]=g,i?(i=m^t[t[t[v^m]]],s^=t[t[s]]):i=s=1}}();var f=[0,1,2,4,8,16,32,64,128,27,54],m=i.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,i=t.sigBytes/4,o=4*((this._nRounds=i+6)+1),r=this._keySchedule=[],a=0;a6&&a%i==4&&(s=n[s>>>24]<<24|n[s>>>16&255]<<16|n[s>>>8&255]<<8|n[255&s]):(s=n[(s=s<<8|s>>>24)>>>24]<<24|n[s>>>16&255]<<16|n[s>>>8&255]<<8|n[255&s],s^=f[a/i|0]<<24),r[a]=r[a-i]^s}for(var c=this._invKeySchedule=[],h=0;h>>24]]^u[n[s>>>16&255]]^p[n[s>>>8&255]]^d[n[255&s]]}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,r,a,c,h,n)},decryptBlock:function(t,e){var i=t[e+1];t[e+1]=t[e+3],t[e+3]=i,this._doCryptBlock(t,e,this._invKeySchedule,l,u,p,d,o),i=t[e+1],t[e+1]=t[e+3],t[e+3]=i},_doCryptBlock:function(t,e,i,n,o,r,a,s){for(var c=this._nRounds,h=t[e]^i[0],l=t[e+1]^i[1],u=t[e+2]^i[2],p=t[e+3]^i[3],d=4,f=1;f>>24]^o[l>>>16&255]^r[u>>>8&255]^a[255&p]^i[d++],y=n[l>>>24]^o[u>>>16&255]^r[p>>>8&255]^a[255&h]^i[d++],v=n[u>>>24]^o[p>>>16&255]^r[h>>>8&255]^a[255&l]^i[d++],g=n[p>>>24]^o[h>>>16&255]^r[l>>>8&255]^a[255&u]^i[d++];h=m,l=y,u=v,p=g}m=(s[h>>>24]<<24|s[l>>>16&255]<<16|s[u>>>8&255]<<8|s[255&p])^i[d++],y=(s[l>>>24]<<24|s[u>>>16&255]<<16|s[p>>>8&255]<<8|s[255&h])^i[d++],v=(s[u>>>24]<<24|s[p>>>16&255]<<16|s[h>>>8&255]<<8|s[255&l])^i[d++],g=(s[p>>>24]<<24|s[h>>>16&255]<<16|s[l>>>8&255]<<8|s[255&u])^i[d++],t[e]=m,t[e+1]=y,t[e+2]=v,t[e+3]=g},keySize:8});t.AES=e._createHelper(m)}(),function(){function t(t,e){var i=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=i,this._lBlock^=i<>>t^this._lBlock)&e;this._lBlock^=i,this._rBlock^=i<>>5]>>>31-n%32&1}for(var o=this._subKeys=[],r=0;r<16;r++){var a=o[r]=[],s=l[r];for(i=0;i<24;i++)a[i/6|0]|=e[(h[i]-1+s)%28]<<31-i%6,a[4+(i/6|0)]|=e[28+(h[i+24]-1+s)%28]<<31-i%6;for(a[0]=a[0]<<1|a[0]>>>31,i=1;i<7;i++)a[i]=a[i]>>>4*(i-1)+3;a[7]=a[7]<<5|a[7]>>>27}var u=this._invSubKeys=[];for(i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(i,n,o){this._lBlock=i[n],this._rBlock=i[n+1],t.call(this,4,252645135),t.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),t.call(this,1,1431655765);for(var r=0;r<16;r++){for(var a=o[r],s=this._lBlock,c=this._rBlock,h=0,l=0;l<8;l++)h|=u[l][((c^a[l])&p[l])>>>0];this._lBlock=c,this._rBlock=s^h}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,t.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),t.call(this,16,65535),t.call(this,4,252645135),i[n]=this._lBlock,i[n+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=r._createHelper(d);var f=a.TripleDES=r.extend({_doReset:function(){var t=this._key.words;this._des1=d.createEncryptor(o.create(t.slice(0,2))),this._des2=d.createEncryptor(o.create(t.slice(2,4))),this._des3=d.createEncryptor(o.create(t.slice(4,6)))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=r._createHelper(f)}(),function(){function t(){for(var t=this._S,e=this._i,i=this._j,n=0,o=0;o<4;o++){i=(i+t[e=(e+1)%256])%256;var r=t[e];t[e]=t[i],t[i]=r,n|=t[(t[e]+t[i])%256]<<24-8*o}return this._i=e,this._j=i,n}var e=s,i=e.lib.StreamCipher,n=e.algo,o=n.RC4=i.extend({_doReset:function(){for(var t=this._key,e=t.words,i=t.sigBytes,n=this._S=[],o=0;o<256;o++)n[o]=o;o=0;for(var r=0;o<256;o++){var a=o%i,s=e[a>>>2]>>>24-a%4*8&255;r=(r+n[o]+s)%256;var c=n[o];n[o]=n[r],n[r]=c}this._i=this._j=0},_doProcessBlock:function(e,i){e[i]^=t.call(this)},keySize:8,ivSize:0});e.RC4=i._createHelper(o);var r=n.RC4Drop=o.extend({cfg:o.cfg.extend({drop:192}),_doReset:function(){o._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)t.call(this)}});e.RC4Drop=i._createHelper(r)}(),s.mode.CTRGladman=function(){function t(t){if(255==(t>>24&255)){var e=t>>16&255,i=t>>8&255,n=255&t;255===e?(e=0,255===i?(i=0,255===n?n=0:++n):++i):++e,t=0,t+=e<<16,t+=i<<8,t+=n}else t+=1<<24;return t}function e(e){return 0===(e[0]=t(e[0]))&&(e[1]=t(e[1])),e}var i=s.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,i){var n=this._cipher,o=n.blockSize,r=this._iv,a=this._counter;r&&(a=this._counter=r.slice(0),this._iv=void 0),e(a);var s=a.slice(0);n.encryptBlock(s,0);for(var c=0;c>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,i=0;i<8;i++){var n=t[i]+e[i],o=65535&n,s=n>>>16,c=((o*o>>>17)+o*s>>>15)+s*s,h=((4294901760&n)*n|0)+((65535&n)*n|0);a[i]=c^h}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var e=s,i=e.lib.StreamCipher,n=e.algo,o=[],r=[],a=[],c=n.Rabbit=i.extend({_doReset:function(){for(var e=this._key.words,i=this.cfg.iv,n=0;n<4;n++)e[n]=16711935&(e[n]<<8|e[n]>>>24)|4278255360&(e[n]<<24|e[n]>>>8);var o=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,n=0;n<4;n++)t.call(this);for(n=0;n<8;n++)r[n]^=o[n+4&7];if(i){var a=i.words,s=a[0],c=a[1],h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),u=h>>>16|4294901760&l,p=l<<16|65535&h;for(r[0]^=h,r[1]^=u,r[2]^=l,r[3]^=p,r[4]^=h,r[5]^=u,r[6]^=l,r[7]^=p,n=0;n<4;n++)t.call(this)}},_doProcessBlock:function(e,i){var n=this._X;t.call(this),o[0]=n[0]^n[5]>>>16^n[3]<<16,o[1]=n[2]^n[7]>>>16^n[5]<<16,o[2]=n[4]^n[1]>>>16^n[7]<<16,o[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)o[r]=16711935&(o[r]<<8|o[r]>>>24)|4278255360&(o[r]<<24|o[r]>>>8),e[i+r]^=o[r]},blockSize:4,ivSize:2});e.Rabbit=i._createHelper(c)}(),s.mode.CTR=function(){var t=s.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,o=this._iv,r=this._counter;o&&(r=this._counter=o.slice(0),this._iv=void 0);var a=r.slice(0);i.encryptBlock(a,0),r[n-1]=r[n-1]+1|0;for(var s=0;s>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,i=0;i<8;i++){var n=t[i]+e[i],o=65535&n,s=n>>>16,c=((o*o>>>17)+o*s>>>15)+s*s,h=((4294901760&n)*n|0)+((65535&n)*n|0);a[i]=c^h}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var e=s,i=e.lib.StreamCipher,n=e.algo,o=[],r=[],a=[],c=n.RabbitLegacy=i.extend({_doReset:function(){var e=this._key.words,i=this.cfg.iv,n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],o=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var r=0;r<4;r++)t.call(this);for(r=0;r<8;r++)o[r]^=n[r+4&7];if(i){var a=i.words,s=a[0],c=a[1],h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),u=h>>>16|4294901760&l,p=l<<16|65535&h;for(o[0]^=h,o[1]^=u,o[2]^=l,o[3]^=p,o[4]^=h,o[5]^=u,o[6]^=l,o[7]^=p,r=0;r<4;r++)t.call(this)}},_doProcessBlock:function(e,i){var n=this._X;t.call(this),o[0]=n[0]^n[5]>>>16^n[3]<<16,o[1]=n[2]^n[7]>>>16^n[5]<<16,o[2]=n[4]^n[1]>>>16^n[7]<<16,o[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)o[r]=16711935&(o[r]<<8|o[r]>>>24)|4278255360&(o[r]<<24|o[r]>>>8),e[i+r]^=o[r]},blockSize:4,ivSize:2});e.RabbitLegacy=i._createHelper(c)}(),s.pad.ZeroPadding={pad:function(t,e){var i=4*e;t.clamp(),t.sigBytes+=i-(t.sigBytes%i||i)},unpad:function(t){for(var e=t.words,i=t.sigBytes-1;!(e[i>>>2]>>>24-i%4*8&255);)i--;t.sigBytes=i+1}},s}),cc._RF.pop()},{}],serverAPI:[function(t,e,i){"use strict";cc._RF.push(e,"98307M8uUtLYKaHXPmGgCWf","serverAPI");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a},a=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))(function(o,r){function a(t){try{c(n.next(t))}catch(e){r(e)}}function s(t){try{c(n.throw(t))}catch(e){r(e)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(a,s)}c((n=n.apply(t,e||[])).next())})},s=this&&this.__generator||function(t,e){var i,n,o,r,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return r={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(t){return function(e){return c([t,e])}}function c(r){if(i)throw new TypeError("Generator is already executing.");for(;a;)try{if(i=1,n&&(o=2&r[0]?n.return:r[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,r[1])).done)return o;switch(n=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return a.label++,{value:r[1],done:!1};case 5:a.label++,n=r[1],r=[0];continue;case 7:r=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){a=0;continue}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]this.m_fluxayTime+this.m_intervalTime&&(this._time=0);var e=this._time/this.m_fluxayTime;this._time>this.m_fluxayTime&&(e=1+(this._time-this.m_fluxayTime)/this.m_intervalTime),null!=this.m_reviseTimeScale&&null!=this.m_reviseStartTime&&(e/=this.m_reviseTimeScale,e-=this.m_reviseStartTime),this._material.setProperty("u_time",e),this._time+=t},refreshSpriteFrameData:function(){var t=this.node.getComponent(cc.Sprite),e=t.getMaterial(0),i=t.spriteFrame;if(null!=i){var n=i.uv[0],o=i.uv[6],r=i.uv[3],a=i.uv[5],s=new cc.Vec4(n,a,o,r),c=i.isRotated()?1:0;void 0!==e.getProperty("u_uvOffset")&&e.setProperty("u_uvOffset",s),void 0!==e.getProperty("u_uvRotated")&&e.setProperty("u_uvRotated",c)}}}),cc._RF.pop()},{}],DynamicAtlasManager:[function(t,e){"use strict";cc._RF.push(e,"3ffacOneORCf6Bc1LFhTCCQ","DynamicAtlasManager"),cc.Class({extends:cc.Component,properties:{},onLoad:function(){cc.dynamicAtlasManager.enabled=!1}}),cc._RF.pop()},{}],GameData:[function(t,e,i){"use strict";cc._RF.push(e,"f2f0bI5PsVI+o18xF6G+KVa","GameData");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=cc._decorator,s=a.ccclass,c=a.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.text="hello",e}var i;return o(e,t),i=e,e.prototype.onLoad=function(){null==i._instance?(i._instance=this,cc.game.addPersistRootNode(this.node),this.AudioManager=this.node.getComponent("BallAudioManager")):this.node.destroy()},e.prototype.start=function(){this.GM_INFO={mean_Time:0,total:0,currSeed:203213,gameId:"100009",userId:200139,guide:!0,url:"http://api.sparkus.cn",success:!1,matchId:null,custom:0},this.LEVEL_INFO=[{number:3,moveNumber:0,moveSpeed:0,maxDistance:200,maxMove:1200,repeat:0},{number:4,moveNumber:0,moveSpeed:0,maxDistance:200,maxMove:1200,repeat:0},{number:4,moveNumber:0,moveSpeed:0,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:1,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:5,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:3,moveSpeed:4,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:0,moveSpeed:4,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:3,moveSpeed:4,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:3,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:8,moveNumber:3,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:8,moveNumber:5,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:9,moveNumber:3,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:9,moveNumber:5,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:10,moveNumber:5,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:3,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:4,moveNumber:0,moveSpeed:0,maxDistance:200,maxMove:1200,repeat:0},{number:4,moveNumber:1,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:4,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:4,moveNumber:1,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:1,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:5,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:1,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:3,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:5,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:6,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:6,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:4,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:6,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:7,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:7,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:7,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:4,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:7,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:8,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:8,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:8,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:8,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:8,moveNumber:4,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:8,moveNumber:2,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:8,moveNumber:4,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:9,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0},{number:9,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:9,moveNumber:5,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:1},{number:10,moveNumber:0,moveSpeed:6,maxDistance:200,maxMove:1200,repeat:0}],this.CLICK_DATA={type:1,success:!1,round:0,totalSunCount:0,movedSunCount:0,sunSpeed:0,overlapSunCount:0,colorList:[],duration:0,difficultyLevel:0,sunList:[],stepTimeList:[],remainder:120},this.GAME_DATA=[]},e.prototype.CLICK_init=function(){this.CLICK_DATA={type:1,success:!1,round:0,totalSunCount:0,movedSunCount:0,sunSpeed:0,overlapSunCount:0,colorList:[],duration:0,difficultyLevel:0,sunList:[],stepTimeList:[],remainder:120}},r([c(cc.Label)],e.prototype,"label",void 0),r([c],e.prototype,"text",void 0),i=r([s],e)}(cc.Component);i.default=h,cc._RF.pop()},{}],GameManager:[function(t,e,i){"use strict";cc._RF.push(e,"b0432BA295DjIOcuitdGKO1","GameManager");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=cc._decorator,s=a.ccclass,c=a.property,h=t("./GameData"),l=t("./Notification"),u=t("./crypto/serverAPI"),p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.ball=null,e.qiu1=null,e.qiu2=null,e.qiu3=null,e.linePrefab=null,e.hit=null,e.bg1=null,e.bg2=null,e.time=null,e.begin=!1,e.fuhuo=!1,e.over=!1,e.show=!1,e.levelLabel=null,e}return o(e,t),e.prototype.onLoad=function(){},e.prototype.start=function(){this.fit(),this.init()},e.prototype.fit=function(){this.fitTop=450,this.fitBot=-600,this.setFit()||(this.fitTop=600,this.fitBot=-700)},e.prototype.getSetScreenResolutionFlag=function(){var t=cc.winSize,e=t.width;return!(t.height/e>16.2/9)},e.prototype.setFit=function(){return this.getSetScreenResolutionFlag()},e.prototype.init=function(){this.node.getChildByName("GameOver").zIndex=100,this.node.getChildByName("GameOver").active=!1,this.ball.zIndex=100,this.bg1=this.node.getChildByName("bg1"),this.bg2=this.node.getChildByName("bg2"),this.time=this.node.getChildByName("Top").getChildByName("time").getComponent(cc.Label),this.node.getChildByName("showBtn").active=!1,this.begin=!1,this.over=!1,this.fuhuo=!0,this.pause=!0,this.show=!1,this.round=0,this.level=2,this.countTime=60,0!=h.default._instance.GM_INFO.custom&&(this.level=h.default._instance.GM_INFO.custom,h.default._instance.GM_INFO.custom+=1,this.countTime=12e6),this.timeCount=.1,this.clickNow=0,this.clickCount=0,this.timeStart=0,this.repeat=-1,this.numberRepeat=-1,this.route_Array=[],this.moveArray=[],this.now_Array=[],this.ball_Array=[],this.Pos_Array=[],this.time_Array=[],this.color_Array=[],h.default._instance.GAME_DATA=[],h.default._instance.GM_INFO.success=!1,this.startTime=0,this.overTime=0,this.winTime=0,h.default._instance.GM_INFO.total=0,h.default._instance.GM_INFO.mean_Time=0,this.schedule(this.updateCountDownTime,1),this.startGame()},e.prototype.backScene=function(){cc.director.loadScene("LoadScene")},e.prototype.reStart=function(t){this.node.getChildByName("showBtn").active=!1,this.destroyLine(),this.timeCount=.1,this.clickNow=0,this.timeStart=0,this.repeat=-1,this.numberRepeat=-1,this.begin=!1,this.route_Array=[],this.now_Array=[],this.ball_Array=[],this.Pos_Array=[],this.moveArray=[],this.time_Array=[],this.color_Array=[],0==t?this.bgMove(1):1==t?this.startGame():2==t&&this.bgMove(-1)},e.prototype.begin_Guide=function(){},e.prototype.getTime=function(){return(new Date).getTime()},e.prototype.passLevel=function(){var t=this;if(this.destroyLine(),0==this.over&&this.countTime>=0){for(var e=[],i=0,n=this.ball_Array[0],o=1;o=0)for(var i=this.ball_Array[0],n=function(n){cc.tween(o.ball_Array[n]).to(2,{x:i.x,y:i.y}).call(function(){e.ball_Array[n].active=!1,n==e.ball_Array.length-1&&(e.ball.opacity=255,e.ball.position=cc.v3(i.x,i.y,0),e.clearSun(),e.reStart(t))}).start()},o=this,r=1;r0&&this.createLine(cc.v2(this.ball_Array[this.clickNow-1].x,this.ball_Array[this.clickNow-1].y),cc.v2(this.ball_Array[this.clickNow].x,this.ball_Array[this.clickNow].y),.2),this.clickNow+=1,this.ball_Array[this.clickNow-1]&&(this.ball_Array[this.clickNow-1].getChildByName("guang").active=!1),this.clickNow==this.now_Array.length){this.pause=!0,h.default._instance.GM_INFO.total+=this.clickNow,this.overTime=this.getTime(),this.startTime>0&&this.overTime>0&&(h.default._instance.GM_INFO.mean_Time+=this.overTime-this.startTime);var n=parseInt((this.overTime-this.startTime)/100+"");this.startTime=0,this.overTime=0,this.level<4&&this.level>1||this.level;var o=this.node.getChildByName("Win");o.active=!0,o.setScale(0),h.default._instance.AudioManager.playWin(),this.round+=1;var r=[];if(this.moveArray.length>0)for(var a=0;a=0&&(e.level>=15?(h.default._instance.GM_INFO.success=!0,e.level+=0,e.fuhuo=!0,e.passLevel()):(e.level+=1,e.fuhuo=!0,e.passLevel()))}).start()}}else this.setLoss()}},e.prototype.setLoss=function(){h.default._instance.AudioManager.playWarning(),this.begin=!1,this.overTime=this.getTime(),this.startTime>0&&this.overTime>0&&(h.default._instance.GM_INFO.mean_Time+=this.overTime-this.startTime);var t=parseInt((this.overTime-this.startTime)/100+"");this.startTime=0,this.overTime=0,this.level<4&&this.level>1||this.level,this.round+=1;var e=[];if(this.moveArray.length>0)for(var i=0;i2?(this.level-=1,this.fuhuo=!0,this.loseLevel(2)):this.loseLevel(1);var n=this.node.getChildByName("Over");cc.tween(n).to(.25,{opacity:255}).delay(.1).to(.2,{opacity:0}).delay(.1).to(.15,{opacity:255}).delay(.1).to(.1,{opacity:0}).start()},e.prototype.hitAction=function(t){var e=this;this.hit.active=!0,this.hit.opacity=0,this.hit.setPosition,this.hit.setPosition(this.ball_Array[t].x+35,this.ball_Array[t].y+35),cc.tween(this.hit).to(0,{opacity:255}).to(.2,{position:cc.v3(this.hit.x-35,this.hit.y-35,0)}).delay(.2).to(.1,{opacity:0}).call(function(){e.hit.active=!1}).start()},e.prototype.startGame=function(){0==this.over&&this.countTime>0&&(this.pause=!0,this.createSun(),this.begin=!1,cc.tween(this.ball).to(.5,{opacity:255,scale:1.3}).start())},e.prototype.runGame=function(){for(var t=this,e=-650,i=function(i){e=1e3*n.now_Array[i].time+e,setTimeout(function(){if(0==t.over){var e=t.now_Array[i].timeCount;e>.5&&(e=.5),0!=i&&t.ball&&t.now_Array[i]&&t.createLine(cc.v2(t.ball.x,t.ball.y),cc.v2(t.now_Array[i].x,t.now_Array[i].y),t.now_Array[i].time-e),cc.tween(t.ball).to(t.now_Array[i].time-e,{x:t.now_Array[i].x,y:t.now_Array[i].y}).to(.1,{scale:1}).call(function(){t.createBall(i,t.now_Array[i].color,t.now_Array[i].speed,t.now_Array[i].repeat),i==t.now_Array.length-1&&(t.ball.opacity=0,setTimeout(function(){t.destroyLine(),t.beginGame(),h.default._instance.LEVEL_INFO[t.level-1].moveNumber<1?t.pause=!1:t.moveAction()},150))}).start()}},e)},n=this,o=0;o=2&&e.moveSpeed,1==e.repeat){this.repeat=parseInt(Math.random()*(e.number-1)+1+"");var i=0;this.repeat>4?(this.numberRepeat=parseInt(4*Math.random()+""),this.repeat==e.number-1&&(this.numberRepeat=this.repeat-parseInt(3*Math.random()+2+"")),i=this.Pos_Array[this.numberRepeat],this.Pos_Array[this.repeat]=i):(0==this.repeat&&(this.repeat=1),e.number-1-this.repeat==2?(this.numberRepeat=e.number-1,i=this.Pos_Array[this.numberRepeat]):e.number-1-this.repeat==1?(this.numberRepeat=this.repeat-2,i=this.Pos_Array[this.numberRepeat]):e.number-1-this.repeat==0?(this.numberRepeat=this.repeat-2,i=this.Pos_Array[this.numberRepeat]):e.number-1-this.repeat>2?(this.numberRepeat=parseInt(Math.random()*(e.number-this.repeat-2)+"")+this.repeat+2,i=this.Pos_Array[this.numberRepeat]):(this.numberRepeat=this.repeat-2,i=this.Pos_Array[this.numberRepeat]),this.Pos_Array[this.repeat]=i)}if(e.moveNumber>0){for(var n=cc.v2(0,0),o=0;o=0;s--)0==this.moveArray[s]&&(this.moveArray[s]=1,this.moveArray[0]=0,s=-1);for(var c=0;c=0;l--)l!=c&&0==this.moveArray[l]&&l!=this.repeat&&l!=this.numberRepeat&&(this.moveArray[l]=1,this.moveArray[c]=0,l=-1);for(var u=function(e){1==p.moveArray[e]&&setTimeout(function(){n=t.getPos2(!0,e),t.Pos_Array[e]=n},300*(a+=1))},p=this,d=0;d=2&&(n=7-i.moveSpeed/2),i.moveNumber>0){cc.v2(0,0);for(var o=0;o=0;r--)r!=o&&0==this.moveArray[r]&&r!=this.repeat&&r!=this.numberRepeat&&(this.moveArray[r]=1,this.moveArray[o]=0,r=-1);for(var a=0,s=0;s1||e<-1?(0==e||i<0||i>=this.Pos_Array.length)&&(i=this.getRandomArray(t)):i=this.getRandomArray(t),i},e.prototype.createSun=function(){for(var t=this,e=h.default._instance.LEVEL_INFO[this.level-1],i=0,n=function(n){setTimeout(function(){if(0==t.over){var i=t.getPos(!1,n);t.Pos_Array.push(i),t.Pos_Array.length==e.number&&(t.createMove(),t.createPos())}},100*(i+=1))},o=0;o0)for(var r=0;r0)for(var r=0;r160&&(o=s160&&(r=1!=o||c800&&(a=800),a/800*.6},e.prototype.calculateDistance2=function(t,e,i,n){var o=i-t,r=n-e,a=Math.sqrt(o*o+r*r);return a>1200&&(a=1200),a/1200*1},e.prototype.calculateDistance3=function(t,e,i,n){var o=i-t,r=n-e,a=Math.sqrt(o*o+r*r);return a>1200&&(a=1200),a/1200*1.5},e.prototype.bgMove=function(t){var e=this,i=300*Math.random()+300,n=600*Math.random()-300,o=this.bg1.y-i*t,r=i/400*.7;cc.tween(this.ball).to(.3,{scale:1.3}).to(r,{x:n}).start(),cc.tween(this.bg1).delay(.3).to(r,{y:o}).start(),setTimeout(function(){0==e.over&&e.startGame()},1500*r)},e.prototype.getTimeMargin=function(t){var e,i;e=t,i=parseInt(e/3600+"");var n=parseInt((e-3600*i)/60+""),o=""+n;n<10&&(o="0"+n);var r=e-3600*i-60*n,a=r+"";return r<10&&(a="0"+r),o+":"+a},e.prototype.updateCountDownTime=function(){if(this.countTime>0&&0==this.pause){if(this.countTime-=1,this.time.string=this.getTimeMargin(this.countTime),this.countTime<5){cc.tween(this.time.node).to(.25,{scale:1.5,color:cc.color(255,0,0)}).to(.25,{scale:1,color:cc.color(255,255,255)}).start();var t=this.node.getChildByName("Over");cc.tween(t).to(.2,{opacity:255}).delay(.1).to(.2,{opacity:0}).start()}if(this.countTime<=0){this.begin=!1,this.over=!0,this.unschedule(this.updateCountDownTime),this.setLoss();var e=0;this.clickCount>0&&(e=parseInt(h.default._instance.GM_INFO.mean_Time/this.clickCount+"")),h.default._instance.GM_INFO.mean_Time=parseInt(e/100+""),h.default._instance.GM_INFO.mean_Time=h.default._instance.GM_INFO.mean_Time/10,e>1e4&&(e=100*(10*Math.random()+5)),this.setRank(e)}}},e.prototype.setData=function(){var t=h.default._instance.GAME_DATA,e=this.getMatchId();console.log(e);var i={matchId:e,data:t};console.log("\u4e0a\u4f20\u6570\u636e:"),u.default.uploadUserLogData(i,function(){})},e.prototype.getMatchId=function(){var t=cc.sys.localStorage.getItem("matchId");if("undifend"==t||null==t)t=this.setMatchId();else if(1==this.containsNanana(t))t=this.setMatchId();else{var e=parseInt(t[10]);1==this.round&&(e+=1),t=t.slice(0,10)+e+"",h.default._instance.GM_INFO.matchId=t,cc.sys.localStorage.setItem("matchId",t)}return t},e.prototype.containsNanana=function(t){return/na/i.test(t)},e.prototype.setMatchId=function(){for(var t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",e=[],i=0;i<10;i++){var n=Math.floor(Math.random()*t.length),o=t.charAt(n);e.push(o)}var r=e.join("")+1+"";return cc.sys.localStorage.setItem("matchNumber",1),cc.sys.localStorage.setItem("matchId",r),h.default._instance.GM_INFO.matchId=r,r},e.prototype.setRank=function(t){var e={type:1,reactionTime:t,totalSunCount:h.default._instance.GM_INFO.total,success:h.default._instance.GM_INFO.success};u.default.rankData(1,function(){},e),this.node.getChildByName("GameOver").active=!0,this.node.getChildByName("GameOver").opacity=0,cc.tween(this.node.getChildByName("GameOver")).to(.4,{opacity:255}).delay(2).to(.4,{opacity:50}).call(function(){cc.director.loadScene("OverScene")}).start()},e.prototype.outPut=function(){h.default._instance.CLICK_DATA,h.default._instance.GAME_DATA=[],h.default._instance.GAME_DATA.push(h.default._instance.CLICK_DATA),h.default._instance.CLICK_init()},e.prototype.showNumber=function(){0==this.show?this.show=!0:1==this.show&&(this.show=!1);for(var t=0;t=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=t("./GameData"),s=t("./crypto/serverAPI"),c=cc._decorator,h=c.ccclass,l=c.property,u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.count=null,e.time=null,e.selfNode=null,e.one=null,e.two=null,e.three=null,e.four=null,e.five=null,e}return o(e,t),e.prototype.start=function(){this.count.string=a.default._instance.GM_INFO.total,a.default._instance.GM_INFO.mean_Time>10&&(a.default._instance.GM_INFO.mean_Time=(parseInt(10*Math.random()+"")+5)/10),this.time.string=a.default._instance.GM_INFO.mean_Time+"s",this.listData=[],this.selfData=null,this.one.active=!1,this.two.active=!1,this.three.active=!1,this.four.active=!1,this.five.active=!1,this.getRank()},e.prototype.success=function(){},e.prototype.back=function(){cc.director.loadScene("RankScene")},e.prototype.again=function(){cc.director.loadScene("GameScene")},e.prototype.getRank=function(){s.default.rankData(2,this.getRankData.bind(this),{page:1,pageSize:100})},e.prototype.getRankData=function(t){if(t){this.listData=t.data.list,this.selfData=t.data.info;var e=[],i=!1;this.selfData.nickName.length>4&&(this.selfData.nickName=this.selfData.nickName.substring(0,4)+"..."),this.selfNode.getChildByName("name").getComponent(cc.Label).string=this.selfData.nickName,this.selfNode.getChildByName("total").getComponent(cc.Label).string=this.selfData.totalSunCount,this.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"),this.selfData.pic);for(var n=0;n<=this.listData.length-1;n++)e.push({rank:n+1,name:this.listData[n].nickName,total:this.listData[n].totalSunCount,pic:this.listData[n].pic}),a.default._instance.GM_INFO.userId==this.listData[n].userId&&(i=!0,this.selfNode.getChildByName("rank").getComponent(cc.Label).string=n+1+""),n==this.listData.length-1&&0==i&&(this.selfNode.getChildByName("rank").getComponent(cc.Label).string="99+"),n<5&&this.setRank(n,this.listData[n])}},e.prototype.setRank=function(t,e){var i=null;0==t?i=this.one:1==t?i=this.two:2==t?i=this.three:3==t?i=this.four:4==t&&(i=this.five),i&&(i.active=!0,e.nickName.length>4&&(e.nickName=e.nickName.substring(0,4)+"..."),i.getChildByName("name").getComponent(cc.Label).string=e.nickName,i.getChildByName("total").getComponent(cc.Label).string=e.totalSunCount,this.setPic(i.getChildByName("pic").getChildByName("icon"),e.pic))},e.prototype.setPic=function(t,e){t.active=!1;var i=e;setTimeout(function(){fetch(i).then(function(t){return t.headers.get("Content-Length")}).then(function(e){"5093"==e&&(t.active=!0)}).catch(function(t){console.error("Error fetching X-Info:",t)})},100),cc.assetManager.loadRemote(i,{ext:".jpg"},function(e,i){i?(t.active=!0,t.getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(i)):console.log(e,i)})},r([l(cc.Label)],e.prototype,"count",void 0),r([l(cc.Label)],e.prototype,"time",void 0),r([l(cc.Node)],e.prototype,"selfNode",void 0),r([l(cc.Node)],e.prototype,"one",void 0),r([l(cc.Node)],e.prototype,"two",void 0),r([l(cc.Node)],e.prototype,"three",void 0),r([l(cc.Node)],e.prototype,"four",void 0),r([l(cc.Node)],e.prototype,"five",void 0),r([h],e)}(cc.Component);i.default=u,cc._RF.pop()},{"./GameData":"GameData","./crypto/serverAPI":"serverAPI"}],GameTool:[function(t,e){"use strict";var i;cc._RF.push(e,"a1dd7qMiCpOLL3FDXJd9DGy","GameTool");var n=t("Storage").StorageMessage;window.GameTool=((i={_startTime:0,_endTime:0,_totalTime:0,getSeedRandom:function(t,e){e=e||1,t=t||0,GM_INFO.currSeed=(9301*GM_INFO.currSeed+49297)%233280;var i=GM_INFO.currSeed/233280;return parseInt(t+i*(e-t))},getSetScreenResolutionFlag:function(){var t=cc.winSize,e=t.width;return!(t.height/e>16.2/9)},setFit:function(){return GameTool.getSetScreenResolutionFlag()},submitScoreButtonFunc:function(t,e){if(console.log("number=",e),0==e){console.log("\u4e0a\u4f20\u5206\u6570:",t);var i=t;CC_WECHATGAME?window.wx.postMessage({messageType:3,MAIN_MENU_FEN:"score",MAIN_MENU_NUM:"fen",score:i,fen:0}):cc.log("\u63d0\u4ea4\u5f97\u5206: x1 : "+i)}else console.log("\u4e0a\u4f20\u7279\u6b8a\u5206\u6570:",t),i=t,CC_WECHATGAME?window.wx.postMessage({messageType:7,MAIN_MENU_FEN:"score",MAIN_MENU_NUM:"fen",score:0,fen:i}):cc.log("\u63d0\u4ea4\u5f97\u5206: x1 : "+i);return!0},getTip:function(){switch(Math.floor(4*Math.random())+1){case 1:return"\u6839\u636e\u5c0f\u7403\u7684\u4f4d\u7f6e\uff0c\u5408\u7406\u6643\u52a8\u624b\u673a\uff0c\u786e\u4fdd\u5c0f\u7403\u4e0d\u6389\u51fa\u6728\u677f\u3002";case 2:return"\u6839\u636e\u5c0f\u7403\u4f4d\u7f6e\u63a7\u5236\u6643\u52a8\u5e45\u5ea6\uff0c\u8fc7\u5927\u6216\u8fc7\u5c0f\u90fd\u4e0d\u662f\u4e2a\u597d\u9009\u62e9\u3002";case 3:return"\u4e0d\u8981\u88ab\u5929\u4e0a\u6389\u843d\u7684\u969c\u788d\u5413\u5230\uff0c\u6709\u65f6\u5019\u5b83\u53cd\u800c\u4f1a\u5e2e\u4f60\u4fdd\u6301\u5e73\u8861\u3002";case 4:return"\u5c1d\u8bd5\u7740\u9876\u5f00\u6389\u843d\u7684\u969c\u788d\uff0c\u662f\u4e2a\u5f88\u9177\u7684\u73a9\u6cd5\u3002"}},beginTiming:function(){this._startTime=(new Date).getTime()},endTiming:function(){this._endTime=(new Date).getTime()},updateScoreTime:function(){var t=(new Date).getTime(),e=t-this._startTime;(e<0||e>500)&&(e=Math.round(1e3*cc.director.getAnimationInterval())),this._endTime+=e/1e3,this._totalTime=this._endTime.toFixed(2),GM_INFO.currScore=this._totalTime,this._startTime=t},countDown:function(){this._endTime=(new Date).getTime(),this._totalTime=parseInt((this._endTime-this._startTime)/1e3),GM_INFO.remainingTime=GM_INFO.totalTime-this._totalTime},httpRequest:function(t,e,i,n){console.log("\u8fdb\u5165\u7f51\u7edc\u8bf7\u6c42:"),wx.getNetworkType({success:function(o){var r=o.networkType;"wifi"==r||"4g"==r||"3g"==r||"unknown"==r?wx.request({url:window.globalData.requestAPI+t,data:e,header:{"content-type":"application/json",Authorization:window.globalData.BASE64_JWT_TOKEN?"Bearer "+window.globalData.BASE64_JWT_TOKEN:""},method:"POST",success:function(t){console.log("httpRequest:::::success",t),i(t)},fail:function(e){console.log("httpRequest:::::fail",e,"\u5931\u8d25url\u4e3a",t),n(e)}}):n(o)},fail:function(t){n(t)}})},httpRequest_Notoken:function(t,e,i,n){wx.getNetworkType({success:function(o){var r=o.networkType;"wifi"==r||"4g"==r||"3g"==r||"unknown"==r?wx.request({url:window.globalData.requestAPI+t,data:e,header:{"content-type":"application/json"},method:"POST",success:function(t){console.log("httpRequest:::::success",t),i(t)},fail:function(e){console.log("httpRequest:::::fail",e,"\u5931\u8d25url\u4e3a",t),n(e)}}):n(o)},fail:function(t){n(t)}})},getGameInfo:function(){var t=!1,e={appid:window.globalData.appid};return window.GameTool.httpRequest(window.globalData.getUserInfoUrl,e,function(e){window.globalData.gameUserInfo=e.data.king_user,console.log("\u62ff\u5230\u670d\u52a1\u5668\u7684\u4fe1\u606f",e.data),window.globalData.gameUserInfo?(console.log("\u83b7\u5f97\u670d\u52a1\u5668\u6e38\u620f\u4fe1\u606f\u6210\u529f:",window.globalData.gameUserInfo),window.globalData.gameUserInfo.unlock_1&&(window.GM_INFO.unlock_1=window.globalData.gameUserInfo.unlock_1),window.globalData.gameUserInfo.unlock_2&&(window.GM_INFO.unlock_2=window.globalData.gameUserInfo.unlock_2),window.globalData.gameUserInfo.coin?n.getStorage("Coin")?window.globalData.gameUserInfo.coin!=n.getStorage("Coin")&&(window.GM_INFO.coin=n.getStorage("Coin"),n.setStorage("Coin",window.GM_INFO.coin)):(window.GM_INFO.coin=window.globalData.gameUserInfo.coin,n.setStorage("Coin",window.GM_INFO.coin)):n.getStorage("Coin")?(window.GM_INFO.coin=n.getStorage("Coin"),n.setStorage("Coin",window.GM_INFO.coin)):(window.GM_INFO.coin=200,n.setStorage("Coin",window.GM_INFO.coin)),cc.director.loadScene("GameBegin"),CC_WECHATGAME&&(wx.onShow(function(t){t&&t.query&&(console.log("\u5206\u4eab\u4e2d\u5e26\u7684\u4fe1\u606f",t.query),t.query.key1&&window.GameTool.setFrindHelp(t.query.key1),t.query.key2&&window.GameTool.setFrindBlock(t.query.key2),t.query.key3&&window.GameTool.setFrindBlockMax(t.query.key3))}),wx.onHide(function(){console.log("\u68c0\u6d4b\u9000\u51fa\u6e38\u620f"),window.GameTool.submitScoreButtonFunc(window.GM_INFO.level,window.GM_INFO.coin),window.GameTool.setGameInfo()})),t=!0):(console.log("\u62ff\u5230\u670d\u52a1\u5668\u4fe1\u606f\u5931\u8d25"),cc.director.loadScene("LoadScene"))},function(){t=!1,console.log("get\u7528\u6237\u4fe1\u606f\u5931\u8d25",res)}),t},reset:function(){console.log("\u672c\u5730\u6570\u636e\u4e22\u5931,\u91cd\u65b0\u542f\u52a8\u6e38\u620f"),cc.director.loadScene("LoadScene")},setGameInfo:function(t){var e={};window.GameTool.httpRequest(window.globalData.richest,e,function(e){console.log("\u5b58\u50a8userInfo\u6210\u529f",e),t||(window.GM_INFO.leave_time=e.data.leave_time,n.setStorage("leave_time",window.GM_INFO.leave_time))},function(i){console.log("\u5b58\u50a8userInfo\u5931\u8d25",i),t||(window.GM_INFO.leave_time=parseInt((new Date).valueOf()/1e3),n.setStorage("leave_time",e))})},getTimeMargin:function(t){var e=t,i=parseInt(e/3600),n=parseInt((e-3600*i)/60);return"\u5269\u4f59:"+i+":"+n+":"+(e-3600*i-60*n)},getTimeMargin2:function(t){var e=t,i=parseInt(e/3600),n=parseInt((e-3600*i)/60);n<10&&(n="0"+n);var o=e-3600*i-60*n;return o<10&&(o="0"+o),"\u5269\u4f59:"+n+":"+o},setFrindBlock:function(t){var e={user_id:t};window.GameTool.httpRequest(window.globalData.entryBlock,e,function(t){console.log("\u6dfb\u52a0\u7ea2\u5305\u52a9\u529b\u4fe1\u606f\u6210\u529f",t)},function(t){console.log("\u6dfb\u52a0\u7ea2\u5305\u52a9\u529b\u4fe1\u606f\u5931\u8d25",t)})}}).getSeedRandom=function(t,e){e=e||1,t=t||0,GM_INFO.currSeed=(9301*GM_INFO.currSeed+49297)%233280;var i=GM_INFO.currSeed/233280;return parseInt(t+i*(e-t))},i.getTime=function(t){var e=parseInt(t/60),i=t-60*e;return e<10&&(e="0"+e),i<10&&(i="0"+i),e+":"+i},i.getNumber=function(t,e){var i=e-3;return t>Math.pow(1e3,8)*Math.pow(10,i)?t/Math.pow(1e3,8)<100?parseInt(t/Math.pow(1e3,8)*10)/10+"S":parseInt(t/Math.pow(1e3,8))+"S":t>Math.pow(1e3,7)*Math.pow(10,i)?t/Math.pow(1e3,7)<100?parseInt(t/Math.pow(1e3,7)*10)/10+"s":parseInt(t/Math.pow(1e3,7))+"s":t>Math.pow(1e3,6)*Math.pow(10,i)?t/Math.pow(1e3,6)<100?parseInt(t/Math.pow(1e3,6)*10)/10+"Q":parseInt(t/Math.pow(1e3,6))+"Q":t>Math.pow(1e3,5)*Math.pow(10,i)?t/Math.pow(1e3,5)<100?parseInt(t/Math.pow(1e3,5)*10)/10+"q":parseInt(t/Math.pow(1e3,5))+"q":t>Math.pow(1e3,4)*Math.pow(10,i)?t/Math.pow(1e3,4)<100?parseInt(t/Math.pow(1e3,4)*10)/10+"t":parseInt(t/Math.pow(1e3,4))+"t":t>Math.pow(1e3,3)*Math.pow(10,i)?t/Math.pow(1e3,3)<100?parseInt(t/Math.pow(1e3,3)*10)/10+"b":parseInt(t/Math.pow(1e3,3))+"b":t>Math.pow(1e3,2)*Math.pow(10,i)?t/Math.pow(1e3,2)<100?parseInt(t/Math.pow(1e3,2)*10)/10+"m":parseInt(t/Math.pow(1e3,2))+"m":t>Math.pow(1e3,1)*Math.pow(10,i)?t/Math.pow(1e3,1)<100?parseInt(t/Math.pow(1e3,1)*10)/10+"k":parseInt(t/Math.pow(1e3,1))+"k":parseInt(t/Math.pow(1e3,0))+""},i.begainTiming=function(){this._startTime=(new Date).getTime()},i.endTiming=function(){var t=(new Date).getTime();this._endTime=t,this._totalTime=t-this._startTime},i.getScoreTime=function(){var t=(new Date).getTime(),e=t-this._startTime;(e<0||e>500)&&(e=Math.round(1e3*cc.director.getAnimationInterval())),GM_INFO.currScore+=e,this._startTime=t},i.getFormatTime=function(t){var e=new Date;e.setTime(t);var i=e.getMilliseconds(),n=parseInt(i/10)%100,o=e.getSeconds(),r=e.getMinutes();return n<10&&(n="0"+n),o<10&&(o="0"+o),r<10&&(r="0"+r),(r+=":")+(o+=":")+n},i.pushLister=function(){},i.removeAllLister=function(){},i),cc._RF.pop()},{Storage:"Storage"}],GuideManager:[function(t,e,i){"use strict";cc._RF.push(e,"3fd2fh6vHNJeISUizW09xat","GuideManager");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=t("./GameData"),s=t("./Notification"),c=cc._decorator,h=c.ccclass,l=c.property,u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.dialog=null,e.ball=null,e.qiu1=null,e.linePrefab=null,e}return o(e,t),e.prototype.start=function(){this.custom=1,this.init(),this.startGuide(0)},e.prototype.init=function(){this.ball.zIndex=100,this.Pos_Array=[],this.ball_Array=[],this.begin=!1,this.clickNow=0,this.tip=null},e.prototype.startGuide=function(t){var e=this,i="tip"+this.custom;0!=t?cc.tween(this.node).to(.5,{opacity:255}).call(function(){e.custom+=1,0!=t&&(e.custom=2),2==e.custom?e.createSun1():3==e.custom?e.createSun2():4==e.custom?e.begin=!0:5==e.custom&&cc.director.loadScene("GameScene")}).start():(this.tip=this.dialog.getChildByName(i),this.tip.active=!0,this.tip.opacity=0,cc.tween(this.tip).to(.5,{opacity:255}).start())},e.prototype.createSun1=function(){var t=this;this.ball_Array=[],this.Pos_Array.push(cc.v2(-250,-216),cc.v2(200,-115),cc.v2(-35,-500));var e=this.calculateDistance(this.ball.x,this.ball.y,this.Pos_Array[0].x,this.Pos_Array[0].y);this.ball.opacity=0,cc.tween(this.ball).to(e,{position:this.Pos_Array[0]}).call(function(){t.createBall(0,0,0,!1)}).delay(1).call(function(){t.startGuide(0)}).start()},e.prototype.beginClick=function(){for(var t=0;t800&&(a=800),a/800*.8},e.prototype.moveSun=function(){},e.prototype.passLevel=function(){var t=this;this.destroyLine();for(var e=[],i=0,n=this.ball_Array[0],o=1;o0&&this.createLine(cc.v2(this.ball_Array[this.clickNow-1].x,this.ball_Array[this.clickNow-1].y),cc.v2(this.ball_Array[this.clickNow].x,this.ball_Array[this.clickNow].y),.2),this.clickNow+=1,a.default._instance.GM_INFO.total+=1,setTimeout(function(){e.ball_Array[e.clickNow-1]&&(e.ball_Array[e.clickNow-1].getChildByName("guang").active=!1)},200),3==this.clickNow){var i=this.node.getChildByName("Win");i.active=!0,i.setScale(0),cc.tween(i).delay(.4).to(.01,{scale:2.5}).to(.35,{scale:1}).delay(.6).call(function(){i.active=!1,setTimeout(function(){e.passLevel()},400)}).start()}}else{a.default._instance.AudioManager.playWarning(),this.begin=!1,this.loseLevel(1);var n=this.node.getChildByName("Over");cc.tween(n).to(.25,{opacity:255}).delay(.1).to(.2,{opacity:0}).delay(.1).to(.15,{opacity:255}).delay(.1).to(.1,{opacity:0}).start()}},e.prototype.loseLevel=function(){var t=this;this.destroyLine();for(var e=this.ball_Array[0],i=function(i){cc.tween(n.ball_Array[i]).to(.6,{x:e.x,y:e.y}).call(function(){t.ball_Array[i].active=!1,i==t.ball_Array.length-1&&(t.ball.opacity=0,t.ball.position=cc.v3(e.x,e.y,0),t.clearSun(),t.custom=1,t.startGuide(1))}).start()},n=this,o=1;o=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=t("./GameData"),s=t("./ListView/List"),c=t("./crypto/serverAPI"),h=cc._decorator,l=h.ccclass,u=h.property,p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Player=null,e.selfNode=null,e.phone=null,e}return o(e,t),e.prototype.onLoad=function(){this.Player.getChildByName("rank").active=!1,this.rankList=cc.find("ScrollView",this.node).getComponent(s.default),this.listData=[],this.selfData=null,this.rankNumber=100,this.rankTotal=100,this.selfNode.opacity=0},e.prototype.start=function(){this.Player.active=!1,this.getRank()},e.prototype.getRankData=function(t){if(t){this.listData=t.data.list,this.selfData=t.data.info;for(var e=[],i=!1,n=0;n<=this.listData.length-1;n++)e.push({rank:n+1,name:this.listData[n].nickName,total:this.listData[n].totalSunCount,pic:this.listData[n].pic}),a.default._instance.GM_INFO.userId==this.listData[n].userId&&(i=!0,this.rankNumber=n,this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string=n+1+""),n==this.listData.length-1&&0==i&&(this.rankNumber=n,this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string="99+");this.rankList.setData(e),this.selfData.nickName.length>6&&(this.selfData.nickName=this.selfData.nickName.substring(0,6)+"..."),this.selfNode.getChildByName("nameLab").getComponent(cc.Label).string=this.selfData.nickName,this.selfNode.getChildByName("totalLab").getComponent(cc.Label).string=this.selfData.totalSunCount,this.setPic(this.selfData.pic),this.setPic2(this.selfData.pic),"1"==this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string?this.selfNode.getChildByName("rank").getChildByName("one").active=!0:"2"==this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string?this.selfNode.getChildByName("rank").getChildByName("two").active=!0:"3"==this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string&&(this.selfNode.getChildByName("rank").getChildByName("three").active=!0),this.selfNode.opacity=255,0==this.selfData.totalSunCount&&(this.selfNode.opacity=0)}},e.prototype.backClick=function(){cc.director.loadScene("LoadScene")},e.prototype.playerAction=function(){var t=this;this.Player.getChildByName("rank").active=!1;var e=1;if(this.tween=cc.tween(this.Player).to(2,{position:cc.v3(210,453,0)}).call(function(){t.Player.getChildByName("rank").active=!0,t.Player.getChildByName("rank").getChildByName("number").getComponent(cc.Label).string=parseInt(100*e+"")+"%"}).start(),e=(this.listData.length-this.rankNumber)/this.listData.length,this.listData.length>=99&&this.rankNumber>=99){e=(49*Math.random()+1)/100;var i=cc.sys.localStorage.getItem("matchNumber");null!=i&&null!=i||(e=0)}setTimeout(function(){t.tween&&t.tween.stop(),t.Player.getChildByName("rank").active=!0,t.Player.getChildByName("rank").getChildByName("number").getComponent(cc.Label).string=parseInt(100*e+"")+"%"},2e3*e)},e.prototype.getRank=function(){c.default.rankData(2,this.getRankData.bind(this),{page:1,pageSize:100})},e.prototype.setPic=function(t){var e=this;this.phone.node.parent.getChildByName("icon").active=!1,this.phone.node.active=!1;var i=t;fetch(i).then(function(t){return t.headers.get("Content-Length")}).then(function(t){"5093"==t&&(e.phone.node.parent.getChildByName("icon").active=!0)}).catch(function(t){console.error("Error fetching X-Info:",t)});var n=this;cc.assetManager.loadRemote(i,{ext:".jpg"},function(t,i){i?(e.phone.node.active=!0,n.phone.spriteFrame=new cc.SpriteFrame(i)):console.log(t,i)})},e.prototype.setPic2=function(t){var e=this;this.Player.active=!0,this.Player.opacity=0,this.Player.getChildByName("mask").getChildByName("icon").active=!1,this.Player.getChildByName("mask").getChildByName("phone").active=!1;var i=t;fetch(i).then(function(t){return t.headers.get("Content-Length")}).then(function(t){"5093"==t&&(e.Player.getChildByName("mask").getChildByName("icon").active=!0)}).catch(function(t){console.error("Error fetching X-Info:",t)}),cc.assetManager.loadRemote(i,{ext:".jpg"},function(t,i){i?(e.Player.opacity=255,e.Player.getChildByName("mask").getChildByName("icon").active=!1,e.Player.getChildByName("mask").getChildByName("phone").active=!0,e.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(i),setTimeout(function(){e.playerAction()},500)):(e.Player.opacity=255,e.Player.getChildByName("mask").getChildByName("icon").active=!0,console.log(t,i),setTimeout(function(){e.playerAction()},500))})},r([u(cc.Node)],e.prototype,"Player",void 0),r([u(cc.Node)],e.prototype,"selfNode",void 0),r([u(cc.Sprite)],e.prototype,"phone",void 0),r([l],e)}(cc.Component);i.default=p,cc._RF.pop()},{"./GameData":"GameData","./ListView/List":"List","./crypto/serverAPI":"serverAPI"}],ItemRender:[function(t,e,i){"use strict";cc._RF.push(e,"ca0f9k0oBVDbpQC+OMNTF3m","ItemRender");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=cc._decorator,s=a.ccclass,c=(a.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=null,e.itemIndex=0,e}return o(e,t),e.prototype.dataChanged=function(){this.data.name.length>6&&(this.data.name=this.data.name.substring(0,6)+"..."),this.node.getChildByName("rankLab").getComponent(cc.Label).string=this.data.rank+"",this.node.getChildByName("nameLab").getComponent(cc.Label).string=this.data.name+"",this.node.getChildByName("totalLab").getComponent(cc.Label).string=this.data.total+"",this.node.getChildByName("rank").getChildByName("one").active=!1,this.node.getChildByName("rank").getChildByName("two").active=!1,this.node.getChildByName("rank").getChildByName("three").active=!1,1==this.data.rank?(this.node.getChildByName("rank").getChildByName("one").active=!0,this.node.getChildByName("rankLab").active=!1):2==this.data.rank?(this.node.getChildByName("rank").getChildByName("two").active=!0,this.node.getChildByName("rankLab").active=!1):3==this.data.rank?(this.node.getChildByName("rank").getChildByName("three").active=!0,this.node.getChildByName("rankLab").active=!1):this.node.getChildByName("rankLab").active=!0,this.setPic()},e.prototype.setPic=function(){var t=this;this.node.getChildByName("pic").getChildByName("icon").active=!1,this.node.getChildByName("pic").getChildByName("pic").active=!1;var e=this.data.pic;fetch(e).then(function(t){return t.headers.get("Content-Length")}).then(function(e){"5093"==e&&(t.node.getChildByName("pic").getChildByName("icon").active=!0)}).catch(function(t){console.error("Error fetching X-Info:",t)}),cc.assetManager.loadRemote(e,{ext:".jpg"},function(e,i){i?(t.node.getChildByName("pic").getChildByName("pic").active=!0,t.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(i)):console.log(e,i)})},r([s],e)}(cc.Component));i.default=c,cc._RF.pop()},{}],List:[function(t,e,i){"use strict";cc._RF.push(e,"d5421HgLShFKIjj5f18m1mi","List");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0}),i.StartAxisType=i.ListType=void 0;var a,s,c=t("./ItemRender"),h=cc._decorator,l=h.ccclass,u=h.property;(function(t){t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical",t[t.Grid=3]="Grid"})(a=i.ListType||(i.ListType={})),function(t){t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical"}(s=i.StartAxisType||(i.StartAxisType={}));var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.itemRender=null,e.type=a.Vertical,e.startAxis=s.Horizontal,e.spaceX=0,e.spaceY=0,e.padding_top=0,e.padding_buttom=0,e.padding_left=0,e._padding=0,e.padding_right=0,e.scrollView=null,e.content=null,e.itemDataList=[],e.spawnCount=0,e.itemList=[],e.itemHeight=0,e.itemWidth=0,e.itemPool=[],e.halfScrollView=0,e.lastContentPosX=0,e.lastContentPosY=0,e.gridRow=0,e.gridCol=0,e.updateTimer=0,e.updateInterval=.1,e.bScrolling=!1,e.updateFun=function(){},e}return o(e,t),e.prototype.onLoad=function(){this.itemHeight=this.itemRender.height,this.itemWidth=this.itemRender.width,this.scrollView=this.node.getComponent(cc.ScrollView),this.content=this.scrollView.content,this.content.anchorX=0,this.content.anchorY=1,this.content.removeAllChildren(),this.scrollView.node.on("scrolling",this.onScrolling,this)},e.prototype.setData=function(t){this.itemDataList=t.slice(),this.updateContent()},e.prototype.countListParam=function(){var t=this.itemDataList.length;this.type==a.Vertical?(this.scrollView.horizontal=!1,this.scrollView.vertical=!0,this.content.width=this.content.parent.width,this.content.height=t*this.itemHeight+(t-1)*this.spaceY+this.padding_top+this.padding_buttom,this.spawnCount=Math.round(this.scrollView.node.height/(this.itemHeight+this.spaceY))+2,this.halfScrollView=this.scrollView.node.height/2+this.itemHeight/2+this.spaceY,this.updateFun=this.updateV):this.type==a.Horizontal?(this.scrollView.horizontal=!0,this.scrollView.vertical=!1,this.content.width=t*this.itemWidth+(t-1)*this.spaceX+this.padding_left+this.padding_right,this.content.height=this.content.parent.height,this.spawnCount=Math.round(this.scrollView.node.width/(this.itemWidth+this.spaceX))+2,this.halfScrollView=this.scrollView.node.width/2+this.itemWidth/2+this.spaceX,this.updateFun=this.udpateH):this.type==a.Grid&&(this.startAxis==s.Vertical?(this.scrollView.horizontal=!1,this.scrollView.vertical=!0,this.content.width=this.content.parent.width,this.padding_left+this.padding_right+this.itemWidth+this.spaceX>this.content.width&&(this.padding_left=0,this.padding_right=0,console.error("padding_left\u6216padding_right\u8fc7\u5927")),this.gridCol=Math.floor((this.content.width-this.padding_left-this.padding_right)/(this.itemWidth+this.spaceX)),this.gridRow=Math.ceil(t/this.gridCol),this.content.height=this.gridRow*this.itemHeight+(this.gridRow-1)*this.spaceY+this.padding_top+this.padding_buttom,this.spawnCount=Math.round(this.scrollView.node.height/(this.itemHeight+this.spaceY))*this.gridCol+2*this.gridCol,this.halfScrollView=this.scrollView.node.height/2+this.itemHeight/2+this.spaceY,this.updateFun=this.updateGrid_V):this.startAxis==s.Horizontal&&(this.scrollView.horizontal=!0,this.scrollView.vertical=!1,this.content.height=this.content.parent.height,this.padding_top+this.padding_buttom+this.itemHeight+this.spaceY>this.content.height&&(this.padding_top=0,this.padding_buttom=0,console.error("padding_top\u6216padding_buttom\u8fc7\u5927")),this.gridRow=Math.floor((this.content.height-this.padding_top-this.padding_buttom)/(this.itemHeight+this.spaceY)),this.gridCol=Math.ceil(t/this.gridRow),this.content.width=this.gridCol*this.itemWidth+(this.gridCol-1)*this.spaceX+this.padding_left+this.padding_right,this.spawnCount=Math.round(this.scrollView.node.width/(this.itemWidth+this.spaceX))*this.gridRow+2*this.gridRow,this.halfScrollView=this.scrollView.node.width/2+this.itemWidth/2+this.spaceX,this.updateFun=this.updateGrid_H))},e.prototype.createList=function(t,e){this.itemDataList.length>this.spawnCount&&t+this.spawnCount-1>=this.itemDataList.length?(t=this.itemDataList.length-this.spawnCount,e=this.scrollView.getMaxScrollOffset()):this.itemDataList.length<=this.spawnCount&&(t=0);for(var i=0;ithis.itemDataList.length-t&&((n=this.itemList.pop()).removeFromParent(),this.itemPool.push(n))}this.scrollView.scrollToOffset(e)},e.prototype.getItem=function(){return 0==this.itemPool.length?cc.instantiate(this.itemRender):this.itemPool.pop()},e.prototype.update=function(t){0!=this.bScrolling&&(this.updateTimer+=t,this.updateTimerthis.lastContentPosY,o=(this.itemHeight+this.spaceY)*e.length,r=0;ri&&t.y-o-this.padding_buttom>-this.content.height){var s=(h=t.getComponent(c.default)).itemIndex+e.length;h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.y=t.y-o}}else if(a.y<-i&&t.y+o+this.padding_top<0){var h;s=(h=t.getComponent(c.default)).itemIndex-e.length,h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.y=t.y+o}}this.lastContentPosY=this.scrollView.content.y},e.prototype.udpateH=function(){for(var t,e=this.itemList,i=this.halfScrollView,n=this.scrollView.content.x>this.lastContentPosX,o=(this.itemWidth+this.spaceX)*e.length,r=0;ri&&t.x-o-this.padding_left>0){var s=(h=t.getComponent(c.default)).itemIndex-e.length;h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.x=t.x-o}}else if(a.x<-i&&t.x+o+this.padding_rightthis.lastContentPosY,o=(this.itemHeight+this.spaceY)*(this.spawnCount/this.gridCol),r=0;ri&&t.y-o-this.padding_buttom>-this.content.height){var s=(h=t.getComponent(c.default)).itemIndex+this.spawnCount/this.gridCol*this.gridCol;null!=this.itemDataList[s]?(t.y=t.y-o,h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.opacity=255):(t.y=t.y-o,h.itemIndex=s,t.opacity=0)}}else if(a.y<-i&&t.y+o+this.padding_top<0){var h;s=(h=t.getComponent(c.default)).itemIndex-this.spawnCount/this.gridCol*this.gridCol,null!=this.itemDataList[s]?(t.y=t.y+o,h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.opacity=255):(t.y=t.y+o,h.itemIndex=s,t.opacity=0)}}this.lastContentPosY=this.scrollView.content.y},e.prototype.updateGrid_H=function(){for(var t,e=this.itemList,i=this.halfScrollView,n=this.scrollView.content.x>this.lastContentPosX,o=(this.itemWidth+this.spaceX)*(this.spawnCount/this.gridRow),r=0;ri&&t.x-o-this.padding_left>0){var s=(h=t.getComponent(c.default)).itemIndex-this.spawnCount/this.gridRow*this.gridRow;null!=this.itemDataList[s]?(t.x=t.x-o,h.itemIndex=s,h.data=this.itemDataList[s],h.dataChanged(),t.opacity=255):(t.x=t.x-o,h.itemIndex=s,t.opacity=0)}}else if(a.x<-i&&t.x+o+this.padding_right=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=cc._decorator,s=a.ccclass,c=a.property,h=(a.requireComponent,t("./GameData")),l=t("./Storage"),u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.label=null,e.text="hello",e}return o(e,t),e.prototype.start=function(){var t=l.StorageMessage.getStorage("user");if("undifend"==t||null==t)this.setId();else{var e=l.StorageMessage.getStorage("user");if(e=this.getId(e),parseInt((new Date).getTime()/1e3+"")-e[2]>86400)return void this.setId();h.default._instance.GM_INFO.userId=e[1],h.default._instance.GM_INFO.userId=parseInt(h.default._instance.GM_INFO.userId)}},e.prototype.setId=function(){if(h.default._instance.GM_INFO.userId=this.getUserId(),null==h.default._instance.GM_INFO.userId){var t="http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback="+location.href;window.location.href=t}else{var e=parseInt((new Date).getTime()/1e3+""),i="gameId="+h.default._instance.GM_INFO.gameId+"?userId= "+h.default._instance.GM_INFO.userId+"?time="+e;l.StorageMessage.setStorage("user",i),h.default._instance.GM_INFO.userId=parseInt(h.default._instance.GM_INFO.userId)}},e.prototype.createTexture=function(){var t=this;cc.assetManager.loadRemote("http://static.sparkus.cn/shoot-sun/assets/resources/native/7a/7a8b41ad-9425-44e2-8f55-7740f12b0e0a.jpg",function(e,i){console.log(e,i),i&&(t.node.getChildByName("icon").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(i))})},e.prototype.getUserId=function(){var t=window.location.search,e=t.split("&");if(t.length>=0&&e.length>0){var i=[];return e.map(function(t){i.push(t.split("=")[1])}),i[0]}return null},e.prototype.getId=function(t){var e=t,i=e.split("?");if(e.length>=0&&i.length>0){var n=[];return i.map(function(t){n.push(t.split("=")[1])}),n}return null},e.prototype.startGame=function(){h.default._instance.GM_INFO.custom=0,cc.director.loadScene("GuideScene")},e.prototype.clickBtn=function(t,e){h.default._instance.GM_INFO.custom=parseInt(e),cc.director.loadScene("GameScene")},e.prototype.openLevel=function(){this.node.getChildByName("Level").active=!0},e.prototype.closeBtn=function(){this.node.getChildByName("Level").active=!1},e.prototype.back=function(){},e.prototype.openBtn=function(){h.default._instance.GM_INFO.custom=0,cc.director.loadScene("GuideScene")},e.prototype.openRank=function(){cc.director.loadScene("RankScene")},r([c(cc.Label)],e.prototype,"label",void 0),r([c],e.prototype,"text",void 0),r([s],e)}(cc.Component);i.default=u,cc._RF.pop()},{"./GameData":"GameData","./Storage":"Storage"}],Notification:[function(t,e,i){"use strict";cc._RF.push(e,"f2518+0IHRGOY+ueIhGtEeA","Notification"),Object.defineProperty(i,"__esModule",{value:!0}),i.Notification=void 0;i.Notification={_eventMap:[],on:function(t,e,i){void 0===this._eventMap[t]&&(this._eventMap[t]=[]),this._eventMap[t].push({callback:e,target:i})},emit:function(t,e){var i=this._eventMap[t];if(void 0!==i)for(var n=0;n=this.duration&&(this.unschedule(this.doSchedule),this.node.setPosition(this.nodeInitialPos),this.shaking=!1,this.callback&&this.callback())},getRandomStrength:function(t,e){return Math.random()*(e-t+1)+t}}),cc._RF.pop()},{}],Storage:[function(t,e,i){"use strict";cc._RF.push(e,"7cf8cMT5zJA0ZU4Gp0JcL8v","Storage"),Object.defineProperty(i,"__esModule",{value:!0}),i.StorageMessage=void 0;var n={getStorage:function(t){var e=null;return cc.sys.localStorage.getItem(t)&&(e=cc.sys.localStorage.getItem(t)),e&&(e=JSON.parse(e)),e},setStorage:function(t,e){var i=JSON.stringify(e);cc.sys.localStorage.setItem(t,i)},removeStorage:function(t){cc.sys.localStorage.getItem(t)&&cc.sys.localStorage.removeItem(t)}};i.StorageMessage=n,cc._RF.pop()},{}],Sun:[function(t,e,i){"use strict";cc._RF.push(e,"4be67sdkexCyqLl0NHd9N1f","Sun");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};Object.defineProperty(i,"__esModule",{value:!0});var a=cc._decorator,s=a.ccclass,c=(a.property,t("./Notification")),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.prototype.start=function(){this.touch=!0,this.move=!1,this._color=0,this._speed=0;var t=this.node.getChildByName("shan");cc.tween(t).repeatForever(cc.tween().to(1,{opacity:0,scale:.5}).delay(.2).to(1,{opacity:255,scale:1.2}).delay(.5)).start()},e.prototype.init=function(t,e,i,n){this.id_Number=t,this._color=e,this._speed=i,this._repeat=n},e.prototype.showNumber=function(t){this.node.getChildByName("number").active=t,1==t&&(this.node.getChildByName("number").getComponent(cc.Label).string=this.id_Number+"")},e.prototype.clickBtn=function(){this.node.parent.parent.name,0==this.move&&1==this.touch&&("GameNode"==this.node.parent.parent.name?1==this.node.parent.parent.getComponent("GameManager").begin&&(cc.tween(this.node.getChildByName("action")).to(.5,{opacity:0,scale:1.8}).start(),cc.tween(this.node).to(.3,{scale:1.3}).to(.3,{scale:1}).start(),this.touch=!1,this.node.zIndex=-1,c.Notification.emit("clickSun",this.id_Number)):(this.touch=!1,this.node.zIndex=-1,c.Notification.emit("clickSun",this.id_Number)))},e.prototype.clickBtn2=function(){1==this.touch&&1==this.node.parent.parent.getComponent("GuideManager").begin&&(this.touch=!1,this.node.zIndex=-1,c.Notification.emit("clickSun",this.id_Number))},e.prototype.update=function(){},r([s],e)}(cc.Component);i.default=h,cc._RF.pop()},{"./Notification":"Notification"}],"crypto-js.min":[function(t,e,i){"use strict";cc._RF.push(e,"e64e1qXyT9CV6s0gDQdj/ed","crypto-js.min"),function(t,n){"object"==typeof i?e.exports=i=n():"function"==typeof define&&define.amd?define([],n):(void 0).CryptoJS=n()}(0,function(){var t,e,i,n,o,r,a,s=s||function(t){var e=Object.create||function(){function t(){}return function(e){var i;return t.prototype=e,i=new t,t.prototype=null,i}}(),i={},n=i.lib={},o=n.Base={extend:function(t){var i=e(this);return t&&i.mixIn(t),i.hasOwnProperty("init")&&this.init!==i.init||(i.init=function(){i.$super.init.apply(this,arguments)}),i.init.prototype=i,i.$super=this,i},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},r=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||s).stringify(this)},concat:function(t){var e=this.words,i=t.words,n=this.sigBytes,o=t.sigBytes;if(this.clamp(),n%4)for(var r=0;r>>2]>>>24-r%4*8&255;e[n+r>>>2]|=a<<24-(n+r)%4*8}else for(r=0;r>>2]=i[r>>>2];return this.sigBytes+=o,this},clamp:function(){var e=this.words,i=this.sigBytes;e[i>>>2]&=4294967295<<32-i%4*8,e.length=t.ceil(i/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var i,n=[],o=function(e){e=e;var i=987654321,n=4294967295;return function(){var o=((i=36969*(65535&i)+(i>>16)&n)<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n;return o/=4294967296,(o+=.5)*(t.random()>.5?1:-1)}},a=0;a>>2]>>>24-o%4*8&255;n.push((r>>>4).toString(16)),n.push((15&r).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new r.init(i,e/2)}},c=a.Latin1={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>24-o%4*8&255;n.push(String.fromCharCode(r))}return n.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new r.init(i,e)}},h=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(c.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return c.parse(unescape(encodeURIComponent(t)))}},l=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new r.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=h.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var i=this._data,n=i.words,o=i.sigBytes,a=this.blockSize,s=o/(4*a),c=(s=e?t.ceil(s):t.max((0|s)-this._minBufferSize,0))*a,h=t.min(4*c,o);if(c){for(var l=0;l>>6-a%4*2;o[r>>>2]|=(s|c)<<24-r%4*8,r++}return i.create(o,r)}var e=s,i=e.lib.WordArray;e.enc.Base64={stringify:function(t){var e=t.words,i=t.sigBytes,n=this._map;t.clamp();for(var o=[],r=0;r>>2]>>>24-r%4*8&255)<<16|(e[r+1>>>2]>>>24-(r+1)%4*8&255)<<8|e[r+2>>>2]>>>24-(r+2)%4*8&255,s=0;s<4&&r+.75*s>>6*(3-s)&63));var c=n.charAt(64);if(c)for(;o.length%4;)o.push(c);return o.join("")},parse:function(e){var i=e.length,n=this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var r=0;r>>32-r)+e}function i(t,e,i,n,o,r,a){var s=t+(e&n|i&~n)+o+a;return(s<>>32-r)+e}function n(t,e,i,n,o,r,a){var s=t+(e^i^n)+o+a;return(s<>>32-r)+e}function o(t,e,i,n,o,r,a){var s=t+(i^(e|~n))+o+a;return(s<>>32-r)+e}var r=s,a=r.lib,c=a.WordArray,h=a.Hasher,l=r.algo,u=[];!function(){for(var e=0;e<64;e++)u[e]=4294967296*t.abs(t.sin(e+1))|0}();var p=l.MD5=h.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var a=0;a<16;a++){var s=r+a,c=t[s];t[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var h=this._hash.words,l=t[r+0],p=t[r+1],d=t[r+2],f=t[r+3],m=t[r+4],y=t[r+5],v=t[r+6],g=t[r+7],_=t[r+8],b=t[r+9],w=t[r+10],S=t[r+11],C=t[r+12],A=t[r+13],x=t[r+14],N=t[r+15],M=h[0],k=h[1],B=h[2],I=h[3];M=e(M,k,B,I,l,7,u[0]),I=e(I,M,k,B,p,12,u[1]),B=e(B,I,M,k,d,17,u[2]),k=e(k,B,I,M,f,22,u[3]),M=e(M,k,B,I,m,7,u[4]),I=e(I,M,k,B,y,12,u[5]),B=e(B,I,M,k,v,17,u[6]),k=e(k,B,I,M,g,22,u[7]),M=e(M,k,B,I,_,7,u[8]),I=e(I,M,k,B,b,12,u[9]),B=e(B,I,M,k,w,17,u[10]),k=e(k,B,I,M,S,22,u[11]),M=e(M,k,B,I,C,7,u[12]),I=e(I,M,k,B,A,12,u[13]),B=e(B,I,M,k,x,17,u[14]),M=i(M,k=e(k,B,I,M,N,22,u[15]),B,I,p,5,u[16]),I=i(I,M,k,B,v,9,u[17]),B=i(B,I,M,k,S,14,u[18]),k=i(k,B,I,M,l,20,u[19]),M=i(M,k,B,I,y,5,u[20]),I=i(I,M,k,B,w,9,u[21]),B=i(B,I,M,k,N,14,u[22]),k=i(k,B,I,M,m,20,u[23]),M=i(M,k,B,I,b,5,u[24]),I=i(I,M,k,B,x,9,u[25]),B=i(B,I,M,k,f,14,u[26]),k=i(k,B,I,M,_,20,u[27]),M=i(M,k,B,I,A,5,u[28]),I=i(I,M,k,B,d,9,u[29]),B=i(B,I,M,k,g,14,u[30]),M=n(M,k=i(k,B,I,M,C,20,u[31]),B,I,y,4,u[32]),I=n(I,M,k,B,_,11,u[33]),B=n(B,I,M,k,S,16,u[34]),k=n(k,B,I,M,x,23,u[35]),M=n(M,k,B,I,p,4,u[36]),I=n(I,M,k,B,m,11,u[37]),B=n(B,I,M,k,g,16,u[38]),k=n(k,B,I,M,w,23,u[39]),M=n(M,k,B,I,A,4,u[40]),I=n(I,M,k,B,l,11,u[41]),B=n(B,I,M,k,f,16,u[42]),k=n(k,B,I,M,v,23,u[43]),M=n(M,k,B,I,b,4,u[44]),I=n(I,M,k,B,C,11,u[45]),B=n(B,I,M,k,N,16,u[46]),M=o(M,k=n(k,B,I,M,d,23,u[47]),B,I,l,6,u[48]),I=o(I,M,k,B,g,10,u[49]),B=o(B,I,M,k,x,15,u[50]),k=o(k,B,I,M,y,21,u[51]),M=o(M,k,B,I,C,6,u[52]),I=o(I,M,k,B,f,10,u[53]),B=o(B,I,M,k,w,15,u[54]),k=o(k,B,I,M,p,21,u[55]),M=o(M,k,B,I,_,6,u[56]),I=o(I,M,k,B,N,10,u[57]),B=o(B,I,M,k,v,15,u[58]),k=o(k,B,I,M,A,21,u[59]),M=o(M,k,B,I,m,6,u[60]),I=o(I,M,k,B,S,10,u[61]),B=o(B,I,M,k,d,15,u[62]),k=o(k,B,I,M,b,21,u[63]),h[0]=h[0]+M|0,h[1]=h[1]+k|0,h[2]=h[2]+B|0,h[3]=h[3]+I|0},_doFinalize:function(){var e=this._data,i=e.words,n=8*this._nDataBytes,o=8*e.sigBytes;i[o>>>5]|=128<<24-o%32;var r=t.floor(n/4294967296),a=n;i[15+(o+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),i[14+(o+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(i.length+1),this._process();for(var s=this._hash,c=s.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return s},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});r.MD5=h._createHelper(p),r.HmacMD5=h._createHmacHelper(p)}(Math),e=(t=s).lib,i=e.WordArray,n=e.Hasher,o=t.algo,r=[],a=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],o=i[1],a=i[2],s=i[3],c=i[4],h=0;h<80;h++){if(h<16)r[h]=0|t[e+h];else{var l=r[h-3]^r[h-8]^r[h-14]^r[h-16];r[h]=l<<1|l>>>31}var u=(n<<5|n>>>27)+c+r[h];u+=h<20?1518500249+(o&a|~o&s):h<40?1859775393+(o^a^s):h<60?(o&a|o&s|a&s)-1894007588:(o^a^s)-899497514,c=s,s=a,a=o<<30|o>>>2,o=n,n=u}i[0]=i[0]+n|0,i[1]=i[1]+o|0,i[2]=i[2]+a|0,i[3]=i[3]+s|0,i[4]=i[4]+c|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=Math.floor(i/4294967296),e[15+(n+64>>>9<<4)]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),t.SHA1=n._createHelper(a),t.HmacSHA1=n._createHmacHelper(a),function(t){var e=s,i=e.lib,n=i.WordArray,o=i.Hasher,r=e.algo,a=[],c=[];!function(){function e(e){for(var i=t.sqrt(e),n=2;n<=i;n++)if(!(e%n))return!1;return!0}function i(t){return 4294967296*(t-(0|t))|0}for(var n=2,o=0;o<64;)e(n)&&(o<8&&(a[o]=i(t.pow(n,.5))),c[o]=i(t.pow(n,1/3)),o++),n++}();var h=[],l=r.SHA256=o.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],o=i[1],r=i[2],a=i[3],s=i[4],l=i[5],u=i[6],p=i[7],d=0;d<64;d++){if(d<16)h[d]=0|t[e+d];else{var f=h[d-15],m=(f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3,y=h[d-2],v=(y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10;h[d]=m+h[d-7]+v+h[d-16]}var g=n&o^n&r^o&r,_=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),b=p+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&l^~s&u)+c[d]+h[d];p=u,u=l,l=s,s=a+b|0,a=r,r=o,o=n,n=b+(_+g)|0}i[0]=i[0]+n|0,i[1]=i[1]+o|0,i[2]=i[2]+r|0,i[3]=i[3]+a|0,i[4]=i[4]+s|0,i[5]=i[5]+l|0,i[6]=i[6]+u|0,i[7]=i[7]+p|0},_doFinalize:function(){var e=this._data,i=e.words,n=8*this._nDataBytes,o=8*e.sigBytes;return i[o>>>5]|=128<<24-o%32,i[14+(o+64>>>9<<4)]=t.floor(n/4294967296),i[15+(o+64>>>9<<4)]=n,e.sigBytes=4*i.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),function(){function t(t){return t<<8&4278255360|t>>>8&16711935}var e=s,i=e.lib.WordArray,n=e.enc;n.Utf16=n.Utf16BE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535;n.push(String.fromCharCode(r))}return n.join("")},parse:function(t){for(var e=t.length,n=[],o=0;o>>1]|=t.charCodeAt(o)<<16-o%2*16;return i.create(n,2*e)}},n.Utf16LE={stringify:function(e){for(var i=e.words,n=e.sigBytes,o=[],r=0;r>>2]>>>16-r%4*8&65535);o.push(String.fromCharCode(a))}return o.join("")},parse:function(e){for(var n=e.length,o=[],r=0;r>>1]|=t(e.charCodeAt(r)<<16-r%2*16);return i.create(o,2*n)}}}(),function(){if("function"==typeof ArrayBuffer){var t=s.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var i=t.byteLength,n=[],o=0;o>>2]|=t[o]<<24-o%4*8;e.call(this,n,i)}else e.apply(this,arguments)}).prototype=t}}(),function(){function t(t,e,i){return t^e^i}function e(t,e,i){return t&e|~t&i}function i(t,e,i){return(t|~e)^i}function n(t,e,i){return t&i|e&~i}function o(t,e,i){return t^(e|~i)}function r(t,e){return t<>>32-e}var a=s,c=a.lib,h=c.WordArray,l=c.Hasher,u=a.algo,p=h.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),d=h.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),f=h.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),m=h.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=h.create([0,1518500249,1859775393,2400959708,2840853838]),v=h.create([1352829926,1548603684,1836072691,2053994217,0]),g=u.RIPEMD160=l.extend({_doReset:function(){this._hash=h.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(a,s){for(var c=0;c<16;c++){var h=s+c,l=a[h];a[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var u,g,_,b,w,S,C,A,x,N,M,k=this._hash.words,B=y.words,I=v.words,D=p.words,P=d.words,L=f.words,O=m.words;for(S=u=k[0],C=g=k[1],A=_=k[2],x=b=k[3],N=w=k[4],c=0;c<80;c+=1)M=u+a[s+D[c]]|0,M+=c<16?t(g,_,b)+B[0]:c<32?e(g,_,b)+B[1]:c<48?i(g,_,b)+B[2]:c<64?n(g,_,b)+B[3]:o(g,_,b)+B[4],M=(M=r(M|=0,L[c]))+w|0,u=w,w=b,b=r(_,10),_=g,g=M,M=S+a[s+P[c]]|0,M+=c<16?o(C,A,x)+I[0]:c<32?n(C,A,x)+I[1]:c<48?i(C,A,x)+I[2]:c<64?e(C,A,x)+I[3]:t(C,A,x)+I[4],M=(M=r(M|=0,O[c]))+N|0,S=N,N=x,x=r(A,10),A=C,C=M;M=k[1]+_+x|0,k[1]=k[2]+b+N|0,k[2]=k[3]+w+S|0,k[3]=k[4]+u+C|0,k[4]=k[0]+g+A|0,k[0]=M},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t.sigBytes=4*(e.length+1),this._process();for(var o=this._hash,r=o.words,a=0;a<5;a++){var s=r[a];r[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return o},clone:function(){var t=l.clone.call(this);return t._hash=this._hash.clone(),t}});a.RIPEMD160=l._createHelper(g),a.HmacRIPEMD160=l._createHmacHelper(g)}(Math),function(){var t=s,e=t.lib.Base,i=t.enc.Utf8;t.algo.HMAC=e.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=i.parse(e));var n=t.blockSize,o=4*n;e.sigBytes>o&&(e=t.finalize(e)),e.clamp();for(var r=this._oKey=e.clone(),a=this._iKey=e.clone(),s=r.words,c=a.words,h=0;h>>24)|4278255360&(r<<24|r>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(k=i[o]).high^=a,k.low^=r}for(var s=0;s<24;s++){for(var p=0;p<5;p++){for(var d=0,f=0,m=0;m<5;m++)d^=(k=i[p+5*m]).high,f^=k.low;var y=u[p];y.high=d,y.low=f}for(p=0;p<5;p++){var v=u[(p+4)%5],g=u[(p+1)%5],_=g.high,b=g.low;for(d=v.high^(_<<1|b>>>31),f=v.low^(b<<1|_>>>31),m=0;m<5;m++)(k=i[p+5*m]).high^=d,k.low^=f}for(var w=1;w<25;w++){var S=(k=i[w]).high,C=k.low,A=c[w];A<32?(d=S<>>32-A,f=C<>>32-A):(d=C<>>64-A,f=S<>>64-A);var x=u[h[w]];x.high=d,x.low=f}var N=u[0],M=i[0];for(N.high=M.high,N.low=M.low,p=0;p<5;p++)for(m=0;m<5;m++){var k=i[w=p+5*m],B=u[w],I=u[(p+1)%5+5*m],D=u[(p+2)%5+5*m];k.high=B.high^~I.high&D.high,k.low=B.low^~I.low&D.low}k=i[0];var P=l[s];k.high^=P.high,k.low^=P.low}},_doFinalize:function(){var e=this._data,i=e.words,o=(this._nDataBytes,8*e.sigBytes),r=32*this.blockSize;i[o>>>5]|=1<<24-o%32,i[(t.ceil((o+1)/r)*r>>>5)-1]|=128,e.sigBytes=4*i.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,c=s/8,h=[],l=0;l>>24)|4278255360&(p<<24|p>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(p)}return new n.init(h,s)},clone:function(){for(var t=o.clone.call(this),e=t._state=this._state.slice(0),i=0;i<25;i++)e[i]=e[i].clone();return t}});e.SHA3=o._createHelper(p),e.HmacSHA3=o._createHmacHelper(p)}(Math),function(){function t(){return o.create.apply(o,arguments)}var e=s,i=e.lib.Hasher,n=e.x64,o=n.Word,r=n.WordArray,a=e.algo,c=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],h=[];!function(){for(var e=0;e<80;e++)h[e]=t()}();var l=a.SHA512=i.extend({_doReset:function(){this._hash=new r.init([new o.init(1779033703,4089235720),new o.init(3144134277,2227873595),new o.init(1013904242,4271175723),new o.init(2773480762,1595750129),new o.init(1359893119,2917565137),new o.init(2600822924,725511199),new o.init(528734635,4215389547),new o.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],o=i[1],r=i[2],a=i[3],s=i[4],l=i[5],u=i[6],p=i[7],d=n.high,f=n.low,m=o.high,y=o.low,v=r.high,g=r.low,_=a.high,b=a.low,w=s.high,S=s.low,C=l.high,A=l.low,x=u.high,N=u.low,M=p.high,k=p.low,B=d,I=f,D=m,P=y,L=v,O=g,R=_,T=b,F=w,G=S,H=C,E=A,z=x,j=N,V=M,q=k,W=0;W<80;W++){var U=h[W];if(W<16)var X=U.high=0|t[e+2*W],K=U.low=0|t[e+2*W+1];else{var Y=h[W-15],J=Y.high,Z=Y.low,Q=(J>>>1|Z<<31)^(J>>>8|Z<<24)^J>>>7,$=(Z>>>1|J<<31)^(Z>>>8|J<<24)^(Z>>>7|J<<25),tt=h[W-2],et=tt.high,it=tt.low,nt=(et>>>19|it<<13)^(et<<3|it>>>29)^et>>>6,ot=(it>>>19|et<<13)^(it<<3|et>>>29)^(it>>>6|et<<26),rt=h[W-7],at=rt.high,st=rt.low,ct=h[W-16],ht=ct.high,lt=ct.low;X=(X=(X=Q+at+((K=$+st)>>>0<$>>>0?1:0))+nt+((K+=ot)>>>0>>0?1:0))+ht+((K+=lt)>>>0>>0?1:0),U.high=X,U.low=K}var ut,pt=F&H^~F&z,dt=G&E^~G&j,ft=B&D^B&L^D&L,mt=I&P^I&O^P&O,yt=(B>>>28|I<<4)^(B<<30|I>>>2)^(B<<25|I>>>7),vt=(I>>>28|B<<4)^(I<<30|B>>>2)^(I<<25|B>>>7),gt=(F>>>14|G<<18)^(F>>>18|G<<14)^(F<<23|G>>>9),_t=(G>>>14|F<<18)^(G>>>18|F<<14)^(G<<23|F>>>9),bt=c[W],wt=bt.high,St=bt.low,Ct=V+gt+((ut=q+_t)>>>0>>0?1:0),At=vt+mt;V=z,q=j,z=H,j=E,H=F,E=G,F=R+(Ct=(Ct=(Ct=Ct+pt+((ut+=dt)>>>0

>>0?1:0))+wt+((ut+=St)>>>0>>0?1:0))+X+((ut+=K)>>>0>>0?1:0))+((G=T+ut|0)>>>0>>0?1:0)|0,R=L,T=O,L=D,O=P,D=B,P=I,B=Ct+(yt+ft+(At>>>0>>0?1:0))+((I=ut+At|0)>>>0>>0?1:0)|0}f=n.low=f+I,n.high=d+B+(f>>>0>>0?1:0),y=o.low=y+P,o.high=m+D+(y>>>0

>>0?1:0),g=r.low=g+O,r.high=v+L+(g>>>0>>0?1:0),b=a.low=b+T,a.high=_+R+(b>>>0>>0?1:0),S=s.low=S+G,s.high=w+F+(S>>>0>>0?1:0),A=l.low=A+E,l.high=C+H+(A>>>0>>0?1:0),N=u.low=N+j,u.high=x+z+(N>>>0>>0?1:0),k=p.low=k+q,p.high=M+V+(k>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(i/4294967296),e[31+(n+128>>>10<<5)]=i,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=i._createHelper(l),e.HmacSHA512=i._createHmacHelper(l)}(),function(){var t=s,e=t.x64,i=e.Word,n=e.WordArray,o=t.algo,r=o.SHA512,a=o.SHA384=r.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=r._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=r._createHelper(a),t.HmacSHA384=r._createHmacHelper(a)}(),s.lib.Cipher||function(t){var e=s,i=e.lib,n=i.Base,o=i.WordArray,r=i.BufferedBlockAlgorithm,a=e.enc,c=(a.Utf8,a.Base64),h=e.algo.EvpKDF,l=i.Cipher=r.extend({cfg:n.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,i){this.cfg=this.cfg.extend(i),this._xformMode=t,this._key=e,this.reset()},reset:function(){r.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?_:v}return function(e){return{encrypt:function(i,n,o){return t(n).encrypt(e,i,n,o)},decrypt:function(i,n,o){return t(n).decrypt(e,i,n,o)}}}}()}),u=(i.StreamCipher=l.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),p=i.BlockCipherMode=n.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),d=u.CBC=function(){function e(e,i,n){var o=this._iv;if(o){var r=o;this._iv=t}else r=this._prevBlock;for(var a=0;a>>2];t.sigBytes-=e}},m=(i.BlockCipher=l.extend({cfg:l.cfg.extend({mode:d,padding:f}),reset:function(){l.reset.call(this);var t=this.cfg,e=t.iv,i=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=i.createEncryptor;else n=i.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==n?this._mode.init(this,e&&e.words):(this._mode=n.call(i,this,e&&e.words),this._mode.__creator=n)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else e=this._process(!0),t.unpad(e);return e},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,i=t.salt;if(i)var n=o.create([1398893684,1701076831]).concat(i).concat(e);else n=e;return n.toString(c)},parse:function(t){var e=c.parse(t),i=e.words;if(1398893684==i[0]&&1701076831==i[1]){var n=o.create(i.slice(2,4));i.splice(0,4),e.sigBytes-=16}return m.create({ciphertext:e,salt:n})}},v=i.SerializableCipher=n.extend({cfg:n.extend({format:y}),encrypt:function(t,e,i,n){n=this.cfg.extend(n);var o=t.createEncryptor(i,n),r=o.finalize(e),a=o.cfg;return m.create({ciphertext:r,key:i,iv:a.iv,algorithm:t,mode:a.mode,padding:a.padding,blockSize:t.blockSize,formatter:n.format})},decrypt:function(t,e,i,n){return n=this.cfg.extend(n),e=this._parse(e,n.format),t.createDecryptor(i,n).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),g=(e.kdf={}).OpenSSL={execute:function(t,e,i,n){n||(n=o.random(8));var r=h.create({keySize:e+i}).compute(t,n),a=o.create(r.words.slice(e),4*i);return r.sigBytes=4*e,m.create({key:r,iv:a,salt:n})}},_=i.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:g}),encrypt:function(t,e,i,n){var o=(n=this.cfg.extend(n)).kdf.execute(i,t.keySize,t.ivSize);n.iv=o.iv;var r=v.encrypt.call(this,t,e,o.key,n);return r.mixIn(o),r},decrypt:function(t,e,i,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var o=n.kdf.execute(i,t.keySize,t.ivSize,e.salt);return n.iv=o.iv,v.decrypt.call(this,t,e,o.key,n)}})}(),s.mode.CFB=function(){function t(t,e,i,n){var o=this._iv;if(o){var r=o.slice(0);this._iv=void 0}else r=this._prevBlock;n.encryptBlock(r,0);for(var a=0;a>>2]|=o<<24-r%4*8,t.sigBytes+=o},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},s.pad.Iso10126={pad:function(t,e){var i=4*e,n=i-t.sigBytes%i;t.concat(s.lib.WordArray.random(n-1)).concat(s.lib.WordArray.create([n<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},s.pad.Iso97971={pad:function(t,e){t.concat(s.lib.WordArray.create([2147483648],1)),s.pad.ZeroPadding.pad(t,e)},unpad:function(t){s.pad.ZeroPadding.unpad(t),t.sigBytes--}},s.mode.OFB=function(){var t=s.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,o=this._iv,r=this._keystream;o&&(r=this._keystream=o.slice(0),this._iv=void 0),i.encryptBlock(r,0);for(var a=0;a>>8^255&f^99,n[i]=f,o[f]=i;var m=t[i],y=t[m],v=t[y],g=257*t[f]^16843008*f;r[i]=g<<24|g>>>8,a[i]=g<<16|g>>>16,c[i]=g<<8|g>>>24,h[i]=g,g=16843009*v^65537*y^257*m^16843008*i,l[f]=g<<24|g>>>8,u[f]=g<<16|g>>>16,p[f]=g<<8|g>>>24,d[f]=g,i?(i=m^t[t[t[v^m]]],s^=t[t[s]]):i=s=1}}();var f=[0,1,2,4,8,16,32,64,128,27,54],m=i.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,i=t.sigBytes/4,o=4*((this._nRounds=i+6)+1),r=this._keySchedule=[],a=0;a6&&a%i==4&&(s=n[s>>>24]<<24|n[s>>>16&255]<<16|n[s>>>8&255]<<8|n[255&s]):(s=n[(s=s<<8|s>>>24)>>>24]<<24|n[s>>>16&255]<<16|n[s>>>8&255]<<8|n[255&s],s^=f[a/i|0]<<24),r[a]=r[a-i]^s}for(var c=this._invKeySchedule=[],h=0;h>>24]]^u[n[s>>>16&255]]^p[n[s>>>8&255]]^d[n[255&s]]}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,r,a,c,h,n)},decryptBlock:function(t,e){var i=t[e+1];t[e+1]=t[e+3],t[e+3]=i,this._doCryptBlock(t,e,this._invKeySchedule,l,u,p,d,o),i=t[e+1],t[e+1]=t[e+3],t[e+3]=i},_doCryptBlock:function(t,e,i,n,o,r,a,s){for(var c=this._nRounds,h=t[e]^i[0],l=t[e+1]^i[1],u=t[e+2]^i[2],p=t[e+3]^i[3],d=4,f=1;f>>24]^o[l>>>16&255]^r[u>>>8&255]^a[255&p]^i[d++],y=n[l>>>24]^o[u>>>16&255]^r[p>>>8&255]^a[255&h]^i[d++],v=n[u>>>24]^o[p>>>16&255]^r[h>>>8&255]^a[255&l]^i[d++],g=n[p>>>24]^o[h>>>16&255]^r[l>>>8&255]^a[255&u]^i[d++];h=m,l=y,u=v,p=g}m=(s[h>>>24]<<24|s[l>>>16&255]<<16|s[u>>>8&255]<<8|s[255&p])^i[d++],y=(s[l>>>24]<<24|s[u>>>16&255]<<16|s[p>>>8&255]<<8|s[255&h])^i[d++],v=(s[u>>>24]<<24|s[p>>>16&255]<<16|s[h>>>8&255]<<8|s[255&l])^i[d++],g=(s[p>>>24]<<24|s[h>>>16&255]<<16|s[l>>>8&255]<<8|s[255&u])^i[d++],t[e]=m,t[e+1]=y,t[e+2]=v,t[e+3]=g},keySize:8});t.AES=e._createHelper(m)}(),function(){function t(t,e){var i=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=i,this._lBlock^=i<>>t^this._lBlock)&e;this._lBlock^=i,this._rBlock^=i<>>5]>>>31-n%32&1}for(var o=this._subKeys=[],r=0;r<16;r++){var a=o[r]=[],s=l[r];for(i=0;i<24;i++)a[i/6|0]|=e[(h[i]-1+s)%28]<<31-i%6,a[4+(i/6|0)]|=e[28+(h[i+24]-1+s)%28]<<31-i%6;for(a[0]=a[0]<<1|a[0]>>>31,i=1;i<7;i++)a[i]=a[i]>>>4*(i-1)+3;a[7]=a[7]<<5|a[7]>>>27}var u=this._invSubKeys=[];for(i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(i,n,o){this._lBlock=i[n],this._rBlock=i[n+1],t.call(this,4,252645135),t.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),t.call(this,1,1431655765);for(var r=0;r<16;r++){for(var a=o[r],s=this._lBlock,c=this._rBlock,h=0,l=0;l<8;l++)h|=u[l][((c^a[l])&p[l])>>>0];this._lBlock=c,this._rBlock=s^h}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,t.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),t.call(this,16,65535),t.call(this,4,252645135),i[n]=this._lBlock,i[n+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=r._createHelper(d);var f=a.TripleDES=r.extend({_doReset:function(){var t=this._key.words;this._des1=d.createEncryptor(o.create(t.slice(0,2))),this._des2=d.createEncryptor(o.create(t.slice(2,4))),this._des3=d.createEncryptor(o.create(t.slice(4,6)))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=r._createHelper(f)}(),function(){function t(){for(var t=this._S,e=this._i,i=this._j,n=0,o=0;o<4;o++){i=(i+t[e=(e+1)%256])%256;var r=t[e];t[e]=t[i],t[i]=r,n|=t[(t[e]+t[i])%256]<<24-8*o}return this._i=e,this._j=i,n}var e=s,i=e.lib.StreamCipher,n=e.algo,o=n.RC4=i.extend({_doReset:function(){for(var t=this._key,e=t.words,i=t.sigBytes,n=this._S=[],o=0;o<256;o++)n[o]=o;o=0;for(var r=0;o<256;o++){var a=o%i,s=e[a>>>2]>>>24-a%4*8&255;r=(r+n[o]+s)%256;var c=n[o];n[o]=n[r],n[r]=c}this._i=this._j=0},_doProcessBlock:function(e,i){e[i]^=t.call(this)},keySize:8,ivSize:0});e.RC4=i._createHelper(o);var r=n.RC4Drop=o.extend({cfg:o.cfg.extend({drop:192}),_doReset:function(){o._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)t.call(this)}});e.RC4Drop=i._createHelper(r)}(),s.mode.CTRGladman=function(){function t(t){if(255==(t>>24&255)){var e=t>>16&255,i=t>>8&255,n=255&t;255===e?(e=0,255===i?(i=0,255===n?n=0:++n):++i):++e,t=0,t+=e<<16,t+=i<<8,t+=n}else t+=1<<24;return t}function e(e){return 0===(e[0]=t(e[0]))&&(e[1]=t(e[1])),e}var i=s.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,i){var n=this._cipher,o=n.blockSize,r=this._iv,a=this._counter;r&&(a=this._counter=r.slice(0),this._iv=void 0),e(a);var s=a.slice(0);n.encryptBlock(s,0);for(var c=0;c>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,i=0;i<8;i++){var n=t[i]+e[i],o=65535&n,s=n>>>16,c=((o*o>>>17)+o*s>>>15)+s*s,h=((4294901760&n)*n|0)+((65535&n)*n|0);a[i]=c^h}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var e=s,i=e.lib.StreamCipher,n=e.algo,o=[],r=[],a=[],c=n.Rabbit=i.extend({_doReset:function(){for(var e=this._key.words,i=this.cfg.iv,n=0;n<4;n++)e[n]=16711935&(e[n]<<8|e[n]>>>24)|4278255360&(e[n]<<24|e[n]>>>8);var o=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,n=0;n<4;n++)t.call(this);for(n=0;n<8;n++)r[n]^=o[n+4&7];if(i){var a=i.words,s=a[0],c=a[1],h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),u=h>>>16|4294901760&l,p=l<<16|65535&h;for(r[0]^=h,r[1]^=u,r[2]^=l,r[3]^=p,r[4]^=h,r[5]^=u,r[6]^=l,r[7]^=p,n=0;n<4;n++)t.call(this)}},_doProcessBlock:function(e,i){var n=this._X;t.call(this),o[0]=n[0]^n[5]>>>16^n[3]<<16,o[1]=n[2]^n[7]>>>16^n[5]<<16,o[2]=n[4]^n[1]>>>16^n[7]<<16,o[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)o[r]=16711935&(o[r]<<8|o[r]>>>24)|4278255360&(o[r]<<24|o[r]>>>8),e[i+r]^=o[r]},blockSize:4,ivSize:2});e.Rabbit=i._createHelper(c)}(),s.mode.CTR=function(){var t=s.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,o=this._iv,r=this._counter;o&&(r=this._counter=o.slice(0),this._iv=void 0);var a=r.slice(0);i.encryptBlock(a,0),r[n-1]=r[n-1]+1|0;for(var s=0;s>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,i=0;i<8;i++){var n=t[i]+e[i],o=65535&n,s=n>>>16,c=((o*o>>>17)+o*s>>>15)+s*s,h=((4294901760&n)*n|0)+((65535&n)*n|0);a[i]=c^h}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var e=s,i=e.lib.StreamCipher,n=e.algo,o=[],r=[],a=[],c=n.RabbitLegacy=i.extend({_doReset:function(){var e=this._key.words,i=this.cfg.iv,n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],o=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var r=0;r<4;r++)t.call(this);for(r=0;r<8;r++)o[r]^=n[r+4&7];if(i){var a=i.words,s=a[0],c=a[1],h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),u=h>>>16|4294901760&l,p=l<<16|65535&h;for(o[0]^=h,o[1]^=u,o[2]^=l,o[3]^=p,o[4]^=h,o[5]^=u,o[6]^=l,o[7]^=p,r=0;r<4;r++)t.call(this)}},_doProcessBlock:function(e,i){var n=this._X;t.call(this),o[0]=n[0]^n[5]>>>16^n[3]<<16,o[1]=n[2]^n[7]>>>16^n[5]<<16,o[2]=n[4]^n[1]>>>16^n[7]<<16,o[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)o[r]=16711935&(o[r]<<8|o[r]>>>24)|4278255360&(o[r]<<24|o[r]>>>8),e[i+r]^=o[r]},blockSize:4,ivSize:2});e.RabbitLegacy=i._createHelper(c)}(),s.pad.ZeroPadding={pad:function(t,e){var i=4*e;t.clamp(),t.sigBytes+=i-(t.sigBytes%i||i)},unpad:function(t){for(var e=t.words,i=t.sigBytes-1;!(e[i>>>2]>>>24-i%4*8&255);)i--;t.sigBytes=i+1}},s}),cc._RF.pop()},{}],serverAPI:[function(t,e,i){"use strict";cc._RF.push(e,"98307M8uUtLYKaHXPmGgCWf","serverAPI");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a},a=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))(function(o,r){function a(t){try{c(n.next(t))}catch(e){r(e)}}function s(t){try{c(n.throw(t))}catch(e){r(e)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(a,s)}c((n=n.apply(t,e||[])).next())})},s=this&&this.__generator||function(t,e){var i,n,o,r,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return r={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(t){return function(e){return c([t,e])}}function c(r){if(i)throw new TypeError("Generator is already executing.");for(;a;)try{if(i=1,n&&(o=2&r[0]?n.return:r[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,r[1])).done)return o;switch(n=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return a.label++,{value:r[1],done:!1};case 5:a.label++,n=r[1],r=[0];continue;case 7:r=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){a=0;continue}if(3===r[0]&&(!o||r[1]>o[0]&&r[1] - + - - 后裔逐日|繁星与你 + + 后裔逐日 + + + + - -

-
- -
+ +
+ + 注意力 +
+
+
+
+
+
+
+ @@ -63,16 +151,46 @@ } var debug = window._CCSettings.debug; - var splash = document.getElementById('splash'); - splash.style.display = 'block'; + // var splash = document.getElementById('splash'); + // splash.style.display = 'block'; var userId = null; - userId = getUserId(); + var urlNow = window.location.href; + if(containsNanana(urlNow) == true){ + document.title = "后裔逐日 | 测试环境"; + } + + // 示例使用 + var title = document.getElementsByTagName('title')[0].innerText; + userId = JSON.parse(localStorage.getItem("user")); + if(userId == "undifend" || userId==null || userId == ""){ + setId(); + } + else{ + let data = JSON.parse(localStorage.getItem("user")); + data = getId(data); + let timestamp = parseInt(new Date().getTime()/1000 + ""); + if((timestamp - data[2]) > 86400){ + setId(); + } + } + + function setId(){ + let userId = getUserId(); if(userId == null){ - let url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=http://train.sparkus.cn/test/Sun_moves/"; + let url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback="+location.href; window.location.href = url; } else{ + let timestamp = parseInt(new Date().getTime()/1000 + ""); + let idTemp = "gameId=" + "100009" + + "?userId= " + userId + "?time=" + timestamp; + localStorage.setItem("user",JSON.stringify(idTemp)); } + } + + function containsNanana(str) { + return /test/i.test(str); + } function loadScript (moduleName, cb) { function scriptLoaded () { @@ -87,6 +205,21 @@ document.body.appendChild(domScript); } + function getId(str) { + let pathStr = str; + + let arr=pathStr.split("?"); + if (pathStr.length>= 0&&arr.length>0) { + let arr2=[]; + arr.map(item=>{ + arr2.push(item.split("=")[1]) + }) + return arr2; + } else { + return null + } + } + function getUserId() { let pathStr = window.location.search; let arr=pathStr.split("&"); @@ -103,8 +236,7 @@ } } - - + loadScript(debug ? 'cocos2d-js.js' : 'cocos2d-js-min.js', function () { if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) { @@ -116,5 +248,6 @@ }); })(); + diff --git a/build/Sun_moves/main.js b/build/Sun_moves/main.js index 9cc311f..a30ce0b 100644 --- a/build/Sun_moves/main.js +++ b/build/Sun_moves/main.js @@ -12,6 +12,7 @@ window.boot = function () { function setLoadingDisplay () { // Loading splash scene var splash = document.getElementById('splash'); + var star = document.getElementById('_star'); // var progressBar = splash.querySelector('.progress-bar span'); onProgress = function (finish, total) { // var percent = 100 * finish / total; @@ -19,12 +20,13 @@ window.boot = function () { // progressBar.style.width = percent.toFixed(2) + '%'; // } }; - splash.style.display = 'block'; + // splash.style.display = 'block'; // progressBar.style.width = '0%'; cc.director.once(cc.Director.EVENT_AFTER_SCENE_LAUNCH, function () { splash.style.display = 'none'; + star.style.display = 'none'; }); } @@ -86,7 +88,6 @@ window.boot = function () { } } ); - }; var option = { diff --git a/build/Sun_moves/style-mobile.css b/build/Sun_moves/style-mobile.css index f7cf3bd..1211ac3 100644 --- a/build/Sun_moves/style-mobile.css +++ b/build/Sun_moves/style-mobile.css @@ -81,7 +81,7 @@ p.footer { font-size: x-small; } -#splash { +/* #splash { position: absolute; top: 0; left: 0; @@ -89,7 +89,7 @@ p.footer { height: 100%; background: #171717 url(./splash.jpg) no-repeat center; background-size: 100%; -} +} */ /* .progress-bar { position: absolute; diff --git a/font字体瘦身.zip b/font字体瘦身.zip new file mode 100644 index 0000000..8c5249b Binary files /dev/null and b/font字体瘦身.zip differ diff --git a/library/imports/2d/2d2f792f-a40c-49bb-a189-ed176a246e49.json b/library/imports/2d/2d2f792f-a40c-49bb-a189-ed176a246e49.json index bd69842..baa7d58 100644 --- a/library/imports/2d/2d2f792f-a40c-49bb-a189-ed176a246e49.json +++ b/library/imports/2d/2d2f792f-a40c-49bb-a189-ed176a246e49.json @@ -85,22 +85,25 @@ "__id__": 69 }, { - "__id__": 77 + "__id__": 84 }, { - "__id__": 102 + "__id__": 86 + }, + { + "__id__": 109 } ], "_active": true, "_components": [ { - "__id__": 107 + "__id__": 114 }, { - "__id__": 108 + "__id__": 115 }, { - "__id__": 109 + "__id__": 116 } ], "_prefab": null, @@ -2822,12 +2825,15 @@ "_children": [ { "__id__": 70 + }, + { + "__id__": 77 } ], "_active": true, "_components": [ { - "__id__": 76 + "__id__": 83 } ], "_prefab": null, @@ -2880,7 +2886,7 @@ }, { "__type__": "cc.Node", - "_name": "mask", + "_name": "rank", "_objFlags": 0, "_parent": { "__id__": 69 @@ -2891,12 +2897,365 @@ }, { "__id__": 73 + }, + { + "__id__": 75 + } + ], + "_active": false, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "7aHA1K+7hE8YNbYjVirEih" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 72 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 72, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -42.835, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "96xrp90GJO8rwMqGxxlacV" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 71 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "超过了", + "_N$string": "超过了", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "daHyJzw/xLho0dlbkuPHvm" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 74 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 48, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 74.991, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "66pdXEqLtLUaXZg+PhM/Z/" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 73 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "的人", + "_N$string": "的人", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "5bSRJmjgtCUrA2vxudA4QN" + }, + { + "__type__": "cc.Node", + "_name": "number", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 76 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 51, + "b": 51, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 58.04, + "height": 36.54 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 21.936, + 61.459, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "08JiIvh25MQLbBHF2EDuB8" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 75 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "30%", + "_N$string": "30%", + "_fontSize": 29, + "_lineHeight": 29, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "4ejvYL3kxDzq6r/YHZLUuV" + }, + { + "__type__": "cc.Node", + "_name": "mask", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 78 + }, + { + "__id__": 80 } ], "_active": true, "_components": [ { - "__id__": 75 + "__id__": 82 } ], "_prefab": null, @@ -2952,13 +3311,13 @@ "_name": "phone", "_objFlags": 0, "_parent": { - "__id__": 70 + "__id__": 77 }, "_children": [], - "_active": true, + "_active": false, "_components": [ { - "__id__": 72 + "__id__": 79 } ], "_prefab": null, @@ -3014,7 +3373,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 71 + "__id__": 78 }, "_enabled": true, "_materials": [ @@ -3046,13 +3405,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 70 + "__id__": 77 }, "_children": [], - "_active": true, + "_active": false, "_components": [ { - "__id__": 74 + "__id__": 81 } ], "_prefab": null, @@ -3108,7 +3467,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 73 + "__id__": 80 }, "_enabled": true, "_materials": [ @@ -3140,7 +3499,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 70 + "__id__": 77 }, "_enabled": true, "_materials": [ @@ -3187,6 +3546,102 @@ "_atlas": null, "_id": "c3I2fvdkFB9I3xv3zy8H3C" }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 85 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 118 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -609, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "b525Z//RNMt7kDFipTkumj" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 84 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8cbfe9a0-914f-4e4c-807b-b073b09f267c" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "f683b01d-4d4a-4b64-a054-741e0785d512" + }, + "_id": "3cEUZF+3RNUYwTQQpf9d/W" + }, { "__type__": "cc.Node", "_name": "Self", @@ -3196,31 +3651,28 @@ }, "_children": [ { - "__id__": 78 + "__id__": 87 }, { - "__id__": 80 - }, - { - "__id__": 86 - }, - { - "__id__": 88 + "__id__": 93 }, { "__id__": 95 }, { - "__id__": 97 + "__id__": 102 }, { - "__id__": 99 + "__id__": 104 + }, + { + "__id__": 106 } ], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 108 } ], "_prefab": null, @@ -3271,121 +3723,25 @@ "groupIndex": 0, "_id": "cf4fwLe4hJXLYT5vY7WfC9" }, - { - "__type__": "cc.Node", - "_name": "bg", - "_objFlags": 0, - "_parent": { - "__id__": 77 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 79 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 750, - "height": 118 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 58, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "b525Z//RNMt7kDFipTkumj" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 78 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "8cbfe9a0-914f-4e4c-807b-b073b09f267c" - }, - "_type": 0, - "_sizeMode": 1, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": { - "__uuid__": "f683b01d-4d4a-4b64-a054-741e0785d512" - }, - "_id": "3cEUZF+3RNUYwTQQpf9d/W" - }, { "__type__": "cc.Node", "_name": "pic", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [ { - "__id__": 81 + "__id__": 88 }, { - "__id__": 83 + "__id__": 90 } ], "_active": true, "_components": [ { - "__id__": 85 + "__id__": 92 } ], "_prefab": null, @@ -3441,13 +3797,13 @@ "_name": "pic", "_objFlags": 0, "_parent": { - "__id__": 80 + "__id__": 87 }, "_children": [], "_active": true, "_components": [ { - "__id__": 82 + "__id__": 89 } ], "_prefab": null, @@ -3503,7 +3859,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 81 + "__id__": 88 }, "_enabled": true, "_materials": [ @@ -3535,13 +3891,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 80 + "__id__": 87 }, "_children": [], "_active": true, "_components": [ { - "__id__": 84 + "__id__": 91 } ], "_prefab": null, @@ -3597,7 +3953,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 83 + "__id__": 90 }, "_enabled": true, "_materials": [ @@ -3629,7 +3985,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 80 + "__id__": 87 }, "_enabled": true, "_materials": [ @@ -3649,13 +4005,13 @@ "_name": "rankLab", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 87 + "__id__": 94 } ], "_prefab": null, @@ -3711,7 +4067,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 86 + "__id__": 93 }, "_enabled": true, "_materials": [ @@ -3744,17 +4100,17 @@ "_name": "rank", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [ { - "__id__": 89 + "__id__": 96 }, { - "__id__": 91 + "__id__": 98 }, { - "__id__": 93 + "__id__": 100 } ], "_active": true, @@ -3812,13 +4168,13 @@ "_name": "one", "_objFlags": 0, "_parent": { - "__id__": 88 + "__id__": 95 }, "_children": [], "_active": false, "_components": [ { - "__id__": 90 + "__id__": 97 } ], "_prefab": null, @@ -3874,7 +4230,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 89 + "__id__": 96 }, "_enabled": true, "_materials": [ @@ -3908,13 +4264,13 @@ "_name": "two", "_objFlags": 0, "_parent": { - "__id__": 88 + "__id__": 95 }, "_children": [], "_active": false, "_components": [ { - "__id__": 92 + "__id__": 99 } ], "_prefab": null, @@ -3970,7 +4326,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 91 + "__id__": 98 }, "_enabled": true, "_materials": [ @@ -4004,13 +4360,13 @@ "_name": "three", "_objFlags": 0, "_parent": { - "__id__": 88 + "__id__": 95 }, "_children": [], "_active": false, "_components": [ { - "__id__": 94 + "__id__": 101 } ], "_prefab": null, @@ -4066,7 +4422,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 93 + "__id__": 100 }, "_enabled": true, "_materials": [ @@ -4100,13 +4456,13 @@ "_name": "totalLab", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 96 + "__id__": 103 } ], "_prefab": null, @@ -4162,7 +4518,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 95 + "__id__": 102 }, "_enabled": true, "_materials": [ @@ -4195,13 +4551,13 @@ "_name": "nameLab", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 98 + "__id__": 105 } ], "_prefab": null, @@ -4257,7 +4613,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 97 + "__id__": 104 }, "_enabled": true, "_materials": [ @@ -4290,13 +4646,13 @@ "_name": "label", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 100 + "__id__": 107 } ], "_prefab": null, @@ -4352,7 +4708,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 99 + "__id__": 106 }, "_enabled": true, "_materials": [ @@ -4385,7 +4741,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 77 + "__id__": 86 }, "_enabled": true, "alignMode": 1, @@ -4418,13 +4774,13 @@ "_active": true, "_components": [ { - "__id__": 103 + "__id__": 110 }, { - "__id__": 104 + "__id__": 111 }, { - "__id__": 105 + "__id__": 112 } ], "_prefab": null, @@ -4480,7 +4836,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 109 }, "_enabled": true, "_materials": [ @@ -4512,7 +4868,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 109 }, "_enabled": true, "alignMode": 1, @@ -4539,7 +4895,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 109 }, "_enabled": true, "_normalMaterial": null, @@ -4548,7 +4904,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 106 + "__id__": 113 } ], "_N$interactable": true, @@ -4645,10 +5001,10 @@ "__id__": 69 }, "selfNode": { - "__id__": 77 + "__id__": 86 }, "phone": { - "__id__": 82 + "__id__": 89 }, "_id": "75enN1g2JHy7NqiKYVoxNQ" }, diff --git a/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js b/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js index 2c5740d..397f17b 100644 --- a/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js +++ b/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js @@ -31,6 +31,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; var GameData_1 = require("./GameData"); +var Storage_1 = require("./Storage"); +// import {StorageMessage} from "./StorageMessage"; // import { apiSign } from "./crypto/sign"; var NewClass = /** @class */ (function (_super) { __extends(NewClass, _super); @@ -42,12 +44,33 @@ var NewClass = /** @class */ (function (_super) { // update (dt) {} } NewClass.prototype.start = function () { + var userId = Storage_1.StorageMessage.getStorage("user"); + if (userId == "undifend" || userId == null) { + this.setId(); + } + else { + var data = Storage_1.StorageMessage.getStorage("user"); + data = this.getId(data); + var timestamp = parseInt(new Date().getTime() / 1000 + ""); + if ((timestamp - data[2]) > 86400) { + this.setId(); + return; + } + GameData_1.default._instance.GM_INFO.userId = data[1]; + GameData_1.default._instance.GM_INFO.userId = parseInt(GameData_1.default._instance.GM_INFO.userId); + } + }; + NewClass.prototype.setId = function () { GameData_1.default._instance.GM_INFO.userId = this.getUserId(); if (GameData_1.default._instance.GM_INFO.userId == null) { - var url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=http://train.sparkus.cn/test/Sun_moves/"; + var url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=" + location.href; window.location.href = url; } else { + var timestamp = parseInt(new Date().getTime() / 1000 + ""); + var idTemp = "gameId=" + GameData_1.default._instance.GM_INFO.gameId + + "?userId= " + GameData_1.default._instance.GM_INFO.userId + "?time=" + timestamp; + Storage_1.StorageMessage.setStorage("user", idTemp); GameData_1.default._instance.GM_INFO.userId = parseInt(GameData_1.default._instance.GM_INFO.userId); } }; @@ -70,13 +93,28 @@ var NewClass = /** @class */ (function (_super) { arr.map(function (item) { arr2_1.push(item.split("=")[1]); }); - GameData_1.default._instance.GM_INFO.userId = arr2_1[0] + ""; + // GameData._instance.GM_INFO.userId = arr2[0] + ""; return arr2_1[0]; } else { return null; } }; + NewClass.prototype.getId = function (str) { + var pathStr = str; + var arr = pathStr.split("?"); + if (pathStr.length >= 0 && arr.length > 0) { + var arr2_2 = []; + arr.map(function (item) { + arr2_2.push(item.split("=")[1]); + }); + // GameData._instance.GM_INFO.userId = arr2[1] + ""; + return arr2_2; + } + else { + return null; + } + }; NewClass.prototype.startGame = function () { GameData_1.default._instance.GM_INFO.custom = 0; cc.director.loadScene("GuideScene"); diff --git a/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js.map b/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js.map index 8bd8b65..4dae1b4 100644 --- a/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js.map +++ b/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\Load.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\nconst {ccclass, property, requireComponent} = cc._decorator;\r\nimport GameData from \"./GameData\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\nimport Rq from \"./crypto/serverAPI\";\r\n// import { apiSign } from \"./crypto/sign\";\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n\r\n\r\n start () {\r\n GameData._instance.GM_INFO.userId = this.getUserId();\r\n if(GameData._instance.GM_INFO.userId == null){\r\n let url = \"http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=http://train.sparkus.cn/test/Sun_moves/\";\r\n window.location.href = url;\r\n }\r\n else{\r\n GameData._instance.GM_INFO.userId = parseInt(GameData._instance.GM_INFO.userId);\r\n }\r\n \r\n }\r\n\r\n createTexture(){\r\n let url = \"http://static.sparkus.cn/shoot-sun/assets/resources/native/7a/7a8b41ad-9425-44e2-8f55-7740f12b0e0a.jpg\";\r\n cc.assetManager.loadRemote(url, (err, texture:cc.Texture2D) => {\r\n console.log(err,texture)\r\n if(texture){\r\n var sprite = this.node.getChildByName(\"icon\").getComponent(cc.Sprite);\r\n sprite.spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n })\r\n }\r\n\r\n private getUserId() {\r\n let pathStr = window.location.search;\r\n\r\n let arr=pathStr.split(\"&\");\r\n if (pathStr.length>= 0&&arr.length>0) {\r\n let arr2=[];\r\n arr.map(item=>{\r\n arr2.push(item.split(\"=\")[1])\r\n })\r\n GameData._instance.GM_INFO.userId = arr2[0] + \"\";\r\n return arr2[0];\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n startGame(){\r\n GameData._instance.GM_INFO.custom = 0;\r\n cc.director.loadScene(\"GuideScene\");\r\n }\r\n \r\n clickBtn(event,data){\r\n GameData._instance.GM_INFO.custom = parseInt(data);\r\n cc.director.loadScene(\"GameScene\");\r\n } \r\n\r\n openLevel(){\r\n this.node.getChildByName(\"Level\").active = true;\r\n }\r\n\r\n closeBtn(){\r\n this.node.getChildByName(\"Level\").active = false;\r\n }\r\n\r\n back(data){\r\n // debugger;\r\n }\r\n\r\n openBtn(){\r\n GameData._instance.GM_INFO.custom = 0;\r\n cc.director.loadScene(\"GuideScene\");\r\n }\r\n\r\n openRank(){\r\n cc.director.loadScene(\"RankScene\");\r\n\r\n }\r\n \r\n // update (dt) {}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\Load.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\nconst {ccclass, property, requireComponent} = cc._decorator;\r\nimport GameData from \"./GameData\";\r\nimport { StorageMessage } from \"./Storage\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\nimport Rq from \"./crypto/serverAPI\";\r\n// import {StorageMessage} from \"./StorageMessage\";\r\n// import { apiSign } from \"./crypto/sign\";\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n\r\n\r\n start () {\r\n let userId = StorageMessage.getStorage(\"user\");\r\n if(userId == \"undifend\" || userId==null){\r\n this.setId();\r\n }\r\n else{\r\n let data = StorageMessage.getStorage(\"user\");\r\n data = this.getId(data);\r\n let timestamp = parseInt(new Date().getTime()/1000 + \"\");\r\n if((timestamp - data[2]) > 86400){\r\n this.setId();\r\n return;\r\n }\r\n GameData._instance.GM_INFO.userId = data[1];\r\n GameData._instance.GM_INFO.userId = parseInt(GameData._instance.GM_INFO.userId);\r\n }\r\n }\r\n\r\n setId(){\r\n GameData._instance.GM_INFO.userId = this.getUserId();\r\n if(GameData._instance.GM_INFO.userId == null){\r\n let url = \"http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=\"+location.href;\r\n window.location.href = url;\r\n }\r\n else{\r\n let timestamp = parseInt(new Date().getTime()/1000 + \"\");\r\n let idTemp = \"gameId=\" + GameData._instance.GM_INFO.gameId + \r\n \"?userId= \" + GameData._instance.GM_INFO.userId + \"?time=\" + timestamp;\r\n StorageMessage.setStorage(\"user\",idTemp);\r\n GameData._instance.GM_INFO.userId = parseInt(GameData._instance.GM_INFO.userId);\r\n }\r\n }\r\n\r\n createTexture(){\r\n let url = \"http://static.sparkus.cn/shoot-sun/assets/resources/native/7a/7a8b41ad-9425-44e2-8f55-7740f12b0e0a.jpg\";\r\n cc.assetManager.loadRemote(url, (err, texture:cc.Texture2D) => {\r\n console.log(err,texture)\r\n if(texture){\r\n var sprite = this.node.getChildByName(\"icon\").getComponent(cc.Sprite);\r\n sprite.spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n })\r\n }\r\n\r\n private getUserId() {\r\n let pathStr = window.location.search;\r\n\r\n let arr=pathStr.split(\"&\");\r\n if (pathStr.length>= 0&&arr.length>0) {\r\n let arr2=[];\r\n arr.map(item=>{\r\n arr2.push(item.split(\"=\")[1])\r\n })\r\n // GameData._instance.GM_INFO.userId = arr2[0] + \"\";\r\n return arr2[0];\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n private getId(str) {\r\n let pathStr = str;\r\n\r\n let arr=pathStr.split(\"?\");\r\n if (pathStr.length>= 0&&arr.length>0) {\r\n let arr2=[];\r\n arr.map(item=>{\r\n arr2.push(item.split(\"=\")[1])\r\n })\r\n // GameData._instance.GM_INFO.userId = arr2[1] + \"\";\r\n return arr2;\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n startGame(){\r\n GameData._instance.GM_INFO.custom = 0;\r\n cc.director.loadScene(\"GuideScene\");\r\n }\r\n \r\n clickBtn(event,data){\r\n GameData._instance.GM_INFO.custom = parseInt(data);\r\n cc.director.loadScene(\"GameScene\");\r\n } \r\n\r\n openLevel(){\r\n this.node.getChildByName(\"Level\").active = true;\r\n }\r\n\r\n closeBtn(){\r\n this.node.getChildByName(\"Level\").active = false;\r\n }\r\n\r\n back(data){\r\n // debugger;\r\n }\r\n\r\n openBtn(){\r\n GameData._instance.GM_INFO.custom = 0;\r\n cc.director.loadScene(\"GuideScene\");\r\n }\r\n\r\n openRank(){\r\n cc.director.loadScene(\"RankScene\");\r\n\r\n }\r\n \r\n // update (dt) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/7c/7cf8c313-e732-40d1-9538-1a9d0970bf2f.js b/library/imports/7c/7cf8c313-e732-40d1-9538-1a9d0970bf2f.js new file mode 100644 index 0000000..fa4fb60 --- /dev/null +++ b/library/imports/7c/7cf8c313-e732-40d1-9538-1a9d0970bf2f.js @@ -0,0 +1,38 @@ +"use strict"; +cc._RF.push(module, '7cf8cMT5zJA0ZU4Gp0JcL8v', 'Storage'); +// Script/Storage.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StorageMessage = void 0; +// var jequry = require("jquery"); +// var coinManager = require("coinManager"); +var StorageMessage = { + getStorage: function (key) { + var result = null; + if (cc.sys.localStorage.getItem(key)) { + var result = cc.sys.localStorage.getItem(key); + } + if (result) { + result = JSON.parse(result); + } + return result; + }, + setStorage: function (key, value) { + //主动拉起分享接口 + var temp = JSON.stringify(value); + cc.sys.localStorage.setItem(key, temp); + // debugger; + // var temp = cc.sys.localStorage.getItem(key); + // debugger; + }, + removeStorage: function (key) { + //主动删除消息接口 + if (cc.sys.localStorage.getItem(key)) { + cc.sys.localStorage.removeItem(key); + } + }, +}; +exports.StorageMessage = StorageMessage; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/7c/7cf8c313-e732-40d1-9538-1a9d0970bf2f.js.map b/library/imports/7c/7cf8c313-e732-40d1-9538-1a9d0970bf2f.js.map new file mode 100644 index 0000000..b428700 --- /dev/null +++ b/library/imports/7c/7cf8c313-e732-40d1-9538-1a9d0970bf2f.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Storage.ts"],"names":[],"mappings":";;;;;;;AACA,kCAAkC;AAClC,4CAA4C;AAC5C,IAAI,cAAc,GAAG;IACjB,UAAU,EAAG,UAAS,GAAG;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,IAAI,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/C;QAED,IAAG,MAAM,EAAC;YACR,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,EAAG,UAAS,GAAG,EAAC,KAAK;QAC3B,UAAU;QACV,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACtC,YAAY;QACZ,+CAA+C;QAC/C,YAAY;IAChB,CAAC;IACD,aAAa,EAAG,UAAS,GAAG;QAC1B,UAAU;QACV,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;SACpC;IACH,CAAC;CACJ,CAAC;AAEO,wCAAc","file":"","sourceRoot":"/","sourcesContent":["\n// var jequry = require(\"jquery\");\n// var coinManager = require(\"coinManager\");\nvar StorageMessage = {\n getStorage : function(key){\n var result = null;\n if(cc.sys.localStorage.getItem(key)){\n var result = cc.sys.localStorage.getItem(key);\n }\n \n if(result){\n result = JSON.parse(result);\n }\n return result;\n },\n setStorage : function(key,value){\n //主动拉起分享接口\n var temp = JSON.stringify(value);\n cc.sys.localStorage.setItem(key, temp)\n // debugger;\n // var temp = cc.sys.localStorage.getItem(key);\n // debugger;\n },\n removeStorage : function(key){\n //主动删除消息接口\n if(cc.sys.localStorage.getItem(key)){\n cc.sys.localStorage.removeItem(key)\n }\n },\n};\n\nexport { StorageMessage };"]} \ No newline at end of file diff --git a/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js b/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js index 196d2c6..1733c97 100644 --- a/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js +++ b/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js @@ -51,6 +51,9 @@ var NewClass = /** @class */ (function (_super) { // onLoad () {} NewClass.prototype.start = function () { this.count.string = GameData_1.default._instance.GM_INFO.total; + if (GameData_1.default._instance.GM_INFO.mean_Time > 10) { + GameData_1.default._instance.GM_INFO.mean_Time = (parseInt(Math.random() * 10 + "") + 5) / 10; + } this.time.string = GameData_1.default._instance.GM_INFO.mean_Time + "s"; this.listData = []; this.selfData = null; diff --git a/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js.map b/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js.map index 0ef7625..6eca424 100644 --- a/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js.map +++ b/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\GameOver.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport GameData from \"./GameData\";\r\nimport List from \"./ListView/List\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\nimport Rq from \"./crypto/serverAPI\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n\r\n @property(cc.Label)\r\n count: cc.Label = null;\r\n\r\n @property(cc.Label)\r\n time: cc.Label = null;\r\n\r\n @property(cc.Node)\r\n selfNode: cc.Node = null;\r\n @property(cc.Node)\r\n one: cc.Node = null;\r\n @property(cc.Node)\r\n two: cc.Node = null;\r\n @property(cc.Node)\r\n three: cc.Node = null;\r\n @property(cc.Node)\r\n four: cc.Node = null;\r\n @property(cc.Node)\r\n five: cc.Node = null;\r\n\r\n listData: any;\r\n selfData: any;\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n // onLoad () {}\r\n\r\n start () {\r\n this.count.string = GameData._instance.GM_INFO.total;\r\n this.time.string = GameData._instance.GM_INFO.mean_Time + \"s\";\r\n this.listData = [];\r\n this.selfData = null;\r\n this.one.active = false;\r\n this.two.active = false;\r\n this.three.active = false;\r\n this.four.active = false;\r\n this.five.active = false;\r\n // this.setData();\r\n this.getRank();\r\n }\r\n\r\n\r\n \r\n\r\n success(data){\r\n }\r\n\r\n\r\n\r\n back(){\r\n cc.director.loadScene(\"RankScene\");\r\n }\r\n\r\n again(){\r\n cc.director.loadScene(\"GameScene\");\r\n }\r\n\r\n getRank(){\r\n let postData = {\r\n \"page\":1,\r\n \"pageSize\":100\r\n }; \r\n HttpUtil.rankData(2,this.getRankData.bind(this),postData);\r\n }\r\n\r\n getRankData(data){\r\n if(data){\r\n this.listData = data.data.list;\r\n this.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n if(this.selfData.nickName.length > 4){\r\n this.selfData.nickName= this.selfData.nickName.substring(0,4) + \"...\"\r\n }\r\n this.selfNode.getChildByName(\"name\").getComponent(cc.Label).string = this.selfData.nickName;\r\n this.selfNode.getChildByName(\"total\").getComponent(cc.Label).string = this.selfData.totalSunCount;\r\n this.setPic(this.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),this.selfData.pic);\r\n for(let i=0;i<=this.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:this.listData[i].nickName, total:this.listData[i].totalSunCount, pic:this.listData[i].pic});\r\n if(GameData._instance.GM_INFO.userId == this.listData[i].userId){\r\n self = true;\r\n this.selfNode.getChildByName(\"rank\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (this.listData.length-1) && self == false){\r\n this.selfNode.getChildByName(\"rank\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n if(i<5) this.setRank(i,this.listData[i]);\r\n }\r\n\r\n }\r\n }\r\n\r\n setRank(num,data){\r\n var hitNode = null;\r\n if(num == 0){\r\n hitNode = this.one;\r\n }\r\n else if(num == 1){\r\n hitNode = this.two;\r\n }\r\n else if(num == 2){\r\n hitNode = this.three;\r\n }\r\n else if(num == 3){\r\n hitNode = this.four;\r\n }\r\n else if(num == 4){\r\n hitNode = this.five;\r\n }\r\n if(hitNode){\r\n hitNode.active = true;\r\n if(data.nickName.length > 4){\r\n data.nickName= data.nickName.substring(0,4) + \"...\"\r\n }\r\n hitNode.getChildByName(\"name\").getComponent(cc.Label).string = data.nickName;\r\n hitNode.getChildByName(\"total\").getComponent(cc.Label).string = data.totalSunCount;\r\n this.setPic(hitNode.getChildByName(\"pic\").getChildByName(\"icon\"),data.pic);\r\n }\r\n\r\n }\r\n\r\n public setPic(node,pic){\r\n node.active = false;\r\n let url = pic;\r\n setTimeout(() => {\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n \r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n node.active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n }, 100);\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n node.active = true;\r\n node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n console.log(err,texture)\r\n }\r\n })\r\n }\r\n\r\n // update (dt) {}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\GameOver.ts"],"names":[],"mappings":";;;;;AAAA,oBAAoB;AACpB,wEAAwE;AACxE,mBAAmB;AACnB,kFAAkF;AAClF,8BAA8B;AAC9B,kFAAkF;;;;;;;;;;;;;;;;;;;;;AAElF,uCAAkC;AAElC,gDAA0C;AAGpC,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAG1C;IAAsC,4BAAY;IAAlD;QAAA,qEA0JC;QAvJG,WAAK,GAAa,IAAI,CAAC;QAGvB,UAAI,GAAa,IAAI,CAAC;QAGtB,cAAQ,GAAY,IAAI,CAAC;QAEzB,SAAG,GAAY,IAAI,CAAC;QAEpB,SAAG,GAAY,IAAI,CAAC;QAEpB,WAAK,GAAY,IAAI,CAAC;QAEtB,UAAI,GAAY,IAAI,CAAC;QAErB,UAAI,GAAY,IAAI,CAAC;;QAsIrB,iBAAiB;IACrB,CAAC;IAnIG,wBAAwB;IAExB,eAAe;IAEf,wBAAK,GAAL;QACI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,kBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QACrD,IAAG,kBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,EAAC;YACzC,kBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,EAAE,GAAC,EAAE,CAAC,GAAC,CAAC,CAAC,GAAC,EAAE,CAAA;SAC9E;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,kBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;QAC9D,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACzB,kBAAkB;QAClB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAKD,0BAAO,GAAP,UAAQ,IAAI;IACZ,CAAC;IAID,uBAAI,GAAJ;QACI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,wBAAK,GAAL;QACI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,0BAAO,GAAP;QACI,IAAI,QAAQ,GAAG;YACX,MAAM,EAAC,CAAC;YACR,UAAU,EAAC,GAAG;SACjB,CAAC;QACF,mBAAQ,CAAC,QAAQ,CAAC,CAAC,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,8BAAW,GAAX,UAAY,IAAI;QACZ,IAAG,IAAI,EAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,IAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,KAAK,CAAA;aACxE;YACD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC5F,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1F,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,EAAE,EAAC;gBACtC,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,IAAI,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC;gBAC5H,IAAG,kBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAC;oBAC5D,IAAI,GAAG,IAAI,CAAC;oBACZ,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAE,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,EAAE,CAAC;iBAClF;gBACD,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,EAAC;oBAC9C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;iBAC9E;gBACD,IAAG,CAAC,GAAC,CAAC;oBAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5C;SAEJ;IACL,CAAC;IAED,0BAAO,GAAP,UAAQ,GAAG,EAAC,IAAI;QACZ,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAG,GAAG,IAAI,CAAC,EAAC;YACR,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;SACtB;aACI,IAAG,GAAG,IAAI,CAAC,EAAC;YACb,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;SACtB;aACI,IAAG,GAAG,IAAI,CAAC,EAAC;YACb,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;SACxB;aACI,IAAG,GAAG,IAAI,CAAC,EAAC;YACb,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;SACvB;aACI,IAAG,GAAG,IAAI,CAAC,EAAC;YACb,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;SACvB;QACD,IAAG,OAAO,EAAC;YACP,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,IAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC;gBACxB,IAAI,CAAC,QAAQ,GAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,KAAK,CAAA;aACtD;YACD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7E,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YACnF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC9E;IAEL,CAAC;IAEM,yBAAM,GAAb,UAAc,IAAI,EAAC,GAAG;QAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,GAAG,GAAG,GAAG,CAAC;QACd,UAAU,CAAC;YACP,KAAK,CAAC,GAAG,CAAC;iBACT,IAAI,CAAC,UAAA,QAAQ;gBACV,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAClD,CAAC,CAAC;iBAED,IAAI,CAAC,UAAA,KAAK;gBACP,IAAG,KAAK,IAAI,MAAM,EAAC;oBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;iBACtB;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,UAAA,KAAK;gBACR,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAC,GAAG,EAAC,MAAM,EAAC,EAAC,UAAC,GAAG,EAAE,OAAoB;YACnE,IAAG,OAAO,EAAC;gBACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC1E;iBACG;gBACA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAC,OAAO,CAAC,CAAA;aAC3B;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IApJD;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;2CACI;IAGvB;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;0CACG;IAGtB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;8CACO;IAEzB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;yCACE;IAEpB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;yCACE;IAEpB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;2CACI;IAEtB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;0CACG;IAErB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;0CACG;IAnBJ,QAAQ;QAD5B,OAAO;OACa,QAAQ,CA0J5B;IAAD,eAAC;CA1JD,AA0JC,CA1JqC,EAAE,CAAC,SAAS,GA0JjD;kBA1JoB,QAAQ","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport GameData from \"./GameData\";\r\nimport List from \"./ListView/List\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\nimport Rq from \"./crypto/serverAPI\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n\r\n @property(cc.Label)\r\n count: cc.Label = null;\r\n\r\n @property(cc.Label)\r\n time: cc.Label = null;\r\n\r\n @property(cc.Node)\r\n selfNode: cc.Node = null;\r\n @property(cc.Node)\r\n one: cc.Node = null;\r\n @property(cc.Node)\r\n two: cc.Node = null;\r\n @property(cc.Node)\r\n three: cc.Node = null;\r\n @property(cc.Node)\r\n four: cc.Node = null;\r\n @property(cc.Node)\r\n five: cc.Node = null;\r\n\r\n listData: any;\r\n selfData: any;\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n // onLoad () {}\r\n\r\n start () {\r\n this.count.string = GameData._instance.GM_INFO.total;\r\n if(GameData._instance.GM_INFO.mean_Time > 10){\r\n GameData._instance.GM_INFO.mean_Time = (parseInt(Math.random()*10+\"\")+5)/10\r\n }\r\n this.time.string = GameData._instance.GM_INFO.mean_Time + \"s\";\r\n this.listData = [];\r\n this.selfData = null;\r\n this.one.active = false;\r\n this.two.active = false;\r\n this.three.active = false;\r\n this.four.active = false;\r\n this.five.active = false;\r\n // this.setData();\r\n this.getRank();\r\n }\r\n\r\n\r\n \r\n\r\n success(data){\r\n }\r\n\r\n\r\n\r\n back(){\r\n cc.director.loadScene(\"RankScene\");\r\n }\r\n\r\n again(){\r\n cc.director.loadScene(\"GameScene\");\r\n }\r\n\r\n getRank(){\r\n let postData = {\r\n \"page\":1,\r\n \"pageSize\":100\r\n }; \r\n HttpUtil.rankData(2,this.getRankData.bind(this),postData);\r\n }\r\n\r\n getRankData(data){\r\n if(data){\r\n this.listData = data.data.list;\r\n this.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n if(this.selfData.nickName.length > 4){\r\n this.selfData.nickName= this.selfData.nickName.substring(0,4) + \"...\"\r\n }\r\n this.selfNode.getChildByName(\"name\").getComponent(cc.Label).string = this.selfData.nickName;\r\n this.selfNode.getChildByName(\"total\").getComponent(cc.Label).string = this.selfData.totalSunCount;\r\n this.setPic(this.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),this.selfData.pic);\r\n for(let i=0;i<=this.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:this.listData[i].nickName, total:this.listData[i].totalSunCount, pic:this.listData[i].pic});\r\n if(GameData._instance.GM_INFO.userId == this.listData[i].userId){\r\n self = true;\r\n this.selfNode.getChildByName(\"rank\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (this.listData.length-1) && self == false){\r\n this.selfNode.getChildByName(\"rank\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n if(i<5) this.setRank(i,this.listData[i]);\r\n }\r\n\r\n }\r\n }\r\n\r\n setRank(num,data){\r\n var hitNode = null;\r\n if(num == 0){\r\n hitNode = this.one;\r\n }\r\n else if(num == 1){\r\n hitNode = this.two;\r\n }\r\n else if(num == 2){\r\n hitNode = this.three;\r\n }\r\n else if(num == 3){\r\n hitNode = this.four;\r\n }\r\n else if(num == 4){\r\n hitNode = this.five;\r\n }\r\n if(hitNode){\r\n hitNode.active = true;\r\n if(data.nickName.length > 4){\r\n data.nickName= data.nickName.substring(0,4) + \"...\"\r\n }\r\n hitNode.getChildByName(\"name\").getComponent(cc.Label).string = data.nickName;\r\n hitNode.getChildByName(\"total\").getComponent(cc.Label).string = data.totalSunCount;\r\n this.setPic(hitNode.getChildByName(\"pic\").getChildByName(\"icon\"),data.pic);\r\n }\r\n\r\n }\r\n\r\n public setPic(node,pic){\r\n node.active = false;\r\n let url = pic;\r\n setTimeout(() => {\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n \r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n node.active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n }, 100);\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n node.active = true;\r\n node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n console.log(err,texture)\r\n }\r\n })\r\n }\r\n\r\n // update (dt) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js b/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js index f85104c..350b5b7 100644 --- a/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js +++ b/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js @@ -258,19 +258,23 @@ var GameManager = /** @class */ (function (_super) { } this.clickNow += 1; // GameData._instance.GM_INFO.total += 1; - setTimeout(function () { - if (_this.ball_Array[_this.clickNow - 1]) - _this.ball_Array[_this.clickNow - 1].getChildByName("guang").active = false; - }, 200); + if (this.ball_Array[this.clickNow - 1]) + this.ball_Array[this.clickNow - 1].getChildByName("guang").active = false; + // setTimeout(() => { + // }, 200); if (this.clickNow == this.now_Array.length) { this.pause = true; GameData_1.default._instance.GM_INFO.total += this.clickNow; this.overTime = this.getTime(); - GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); - console.log(GameData_1.default._instance.GM_INFO.mean_Time); + if (this.startTime > 0 && this.overTime > 0) { + GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); + } + // console.log("成功",GameData._instance.GM_INFO.mean_Time,this.overTime,this.startTime); + // console.log(GameData._instance.GM_INFO.mean_Time); var finish_time = parseInt((this.overTime - this.startTime) / 100 + ""); this.startTime = 0; this.overTime = 0; + // console.log("33333333"); var color = "y"; if (this.level < 4 && this.level > 1) color = "yr"; @@ -354,8 +358,9 @@ var GameManager = /** @class */ (function (_super) { GameData_1.default._instance.AudioManager.playWarning(); this.begin = false; this.overTime = this.getTime(); - GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); - console.log(GameData_1.default._instance.GM_INFO.mean_Time); + if (this.startTime > 0 && this.overTime > 0) { + GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); + } var finish_time = parseInt((this.overTime - this.startTime) / 100 + ""); this.startTime = 0; this.overTime = 0; @@ -550,27 +555,24 @@ var GameManager = /** @class */ (function (_super) { //0 1 2 3 4 5 6 7 8 9 //可移动区分 var pos_1 = cc.v2(0, 0); - if (info.number == 3) - this.moveArray = [0, 1, 0]; - else if (info.number == 4) - this.moveArray = [0, 0, 1, 0]; - else if (info.number == 5) - this.moveArray = [0, 0, 1, 0, 0]; - else if (info.number == 5) - this.moveArray = [0, 0, 1, 0, 0]; - else if (info.number == 6) - this.moveArray = [0, 0, 1, 1, 0, 0]; - else if (info.number == 7) - this.moveArray = [0, 0, 1, 1, 1, 0, 0]; - else if (info.number == 8) - this.moveArray = [0, 0, 0, 1, 1, 1, 1, 0]; - else if (info.number == 9) - this.moveArray = [0, 0, 1, 1, 1, 1, 1, 0, 0]; - else if (info.number == 10) - this.moveArray = [0, 0, 0, 1, 1, 1, 1, 1, 0, 0]; + for (var z = 0; z < info.number; z++) { + this.moveArray[z] = 0; + } + for (var p = 0; p < info.moveNumber; p++) { + this.moveArray[info.number - 1 - p] = 1; + } var timeOut = 0; //打乱可移动顺序 - // this.moveArray .sort(() => Math.random() - 0.5); + this.moveArray.sort(function () { return Math.random() - 0.5; }); + if (this.moveArray[0] == 1) { + for (var r = info.number - 1; r >= 0; r--) { + if (this.moveArray[r] == 0) { + this.moveArray[r] = 1; + this.moveArray[0] = 0; + r = -1; + } + } + } // debugger; //设置重叠 // this.repeat = -1; @@ -972,12 +974,15 @@ var GameManager = /** @class */ (function (_super) { this.unschedule(this.updateCountDownTime); this.setLoss(); var time = 0; - console.log(GameData_1.default._instance.GM_INFO.mean_Time, this.clickCount); + // console.log(GameData._instance.GM_INFO.mean_Time,this.clickCount); if (this.clickCount > 0) time = parseInt(GameData_1.default._instance.GM_INFO.mean_Time / this.clickCount + ""); GameData_1.default._instance.GM_INFO.mean_Time = parseInt(time / 100 + ""); GameData_1.default._instance.GM_INFO.mean_Time = GameData_1.default._instance.GM_INFO.mean_Time / 10; - console.log(GameData_1.default._instance.GM_INFO.mean_Time); + // console.log( GameData._instance.GM_INFO.mean_Time,time); + // debugger; + if (time > 10000) + time = (Math.random() * 10 + 5) * 100; this.setRank(time); } } @@ -985,11 +990,12 @@ var GameManager = /** @class */ (function (_super) { GameManager.prototype.setData = function () { var data = GameData_1.default._instance.GAME_DATA; var matchId = this.getMatchId(); + console.log(matchId); var postData = { "matchId": matchId, "data": data }; - // console.log("上传数据:",postData) + console.log("上传数据:"); serverAPI_1.default.uploadUserLogData(postData, function () { }); }; GameManager.prototype.getMatchId = function () { @@ -998,14 +1004,24 @@ var GameManager = /** @class */ (function (_super) { matchId = this.setMatchId(); } else { - var char = parseInt(matchId[10]); - char += 1; - matchId = matchId.slice(0, 10) + char + ""; - GameData_1.default._instance.GM_INFO.matchId = matchId; - cc.sys.localStorage.setItem("matchId", matchId); + if (this.containsNanana(matchId) == true) { + matchId = this.setMatchId(); + } + else { + var char = parseInt(matchId[10]); + if (this.round == 1) { + char += 1; + } + matchId = matchId.slice(0, 10) + char + ""; + GameData_1.default._instance.GM_INFO.matchId = matchId; + cc.sys.localStorage.setItem("matchId", matchId); + } } return matchId; }; + GameManager.prototype.containsNanana = function (str) { + return /na/i.test(str); + }; GameManager.prototype.setMatchId = function () { // 定义包含可用字符的字符集 var characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; @@ -1033,7 +1049,7 @@ var GameManager = /** @class */ (function (_super) { "totalSunCount": GameData_1.default._instance.GM_INFO.total, "success": GameData_1.default._instance.GM_INFO.success }; - console.log(postData); + // console.log(postData); serverAPI_1.default.rankData(1, function () { }, postData); this.node.getChildByName("GameOver").active = true; this.node.getChildByName("GameOver").opacity = 0; @@ -1049,20 +1065,6 @@ var GameManager = /** @class */ (function (_super) { GameManager.prototype.outPut = function () { var data = GameData_1.default._instance.CLICK_DATA; GameData_1.default._instance.GAME_DATA = []; - // if(data.succeed == true) this.label1.string = "成功/失败:成功"; - // else if(data.succeed == false) this.label1.string = "成功/失败:失败"; - // this.label2.string = "太阳总数量:"+data.sun_total; - // this.label3.string = "太阳移动数量:"+data.sun_move; - // this.label4.string = "太阳移动速度:"+data.sun_speed; - // this.label5.string = "太阳重叠个数:"+data.sun_overlap; - // if(data.sun_color == "y") this.label6.string = "太阳颜色:yellow"; - // else if(data.sun_color == "yr") this.label6.string = "太阳颜色:yellow,red"; - // else if(data.sun_color == "yrb") this.label6.string = "太阳颜色:yellow,red,black"; - // this.label7.string = "完成时间:"+data.finish_time+"s"; - // this.label8.string = "难度等级:"+data.sun_difficulty+"级"; - // if(data.sun_color == "y") console.log("太阳颜色:","yellow" ); - // else if(data.sun_color == "yr") console.log("太阳颜色:","yellow,red" ); - // else if(data.sun_color == "yrb") console.log("太阳颜色:","yellow,red,black" ); GameData_1.default._instance.GAME_DATA.push(GameData_1.default._instance.CLICK_DATA); GameData_1.default._instance.CLICK_init(); }; diff --git a/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js.map b/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js.map index aebefc8..8f3101a 100644 --- a/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js.map +++ b/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\GameManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nconst {ccclass, property} = cc._decorator;\r\nimport GameData from './GameData';\r\nimport { Notification } from './Notification';\r\nimport HttpUtil from './crypto/serverAPI';\r\n@ccclass\r\nexport default class GameManager extends cc.Component {\r\n\r\n @property(cc.Node)\r\n ball: cc.Node = null;\r\n @property(cc.Prefab)\r\n qiu1: cc.Prefab = null;\r\n @property(cc.Prefab)\r\n qiu2: cc.Prefab = null;\r\n @property(cc.Prefab)\r\n qiu3: cc.Prefab = null;\r\n @property(cc.Prefab)\r\n linePrefab: cc.Prefab = null;\r\n @property(cc.Node)\r\n hit: cc.Node = null;\r\n\r\n bg1: cc.Node = null;\r\n bg2: cc.Node = null;\r\n time: cc.Label = null;\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n begin: boolean = false;\r\n fuhuo: boolean = false;\r\n over: boolean = false;\r\n show: boolean = false;\r\n countTime:number;\r\n timeCount:number;\r\n fitTop:number;\r\n fitBot:number;\r\n level:number;\r\n clickNow:number;\r\n startTime:number;\r\n overTime:number;\r\n winTime:number;\r\n clickCount:number;\r\n timeStart:number;\r\n route_Array: any[];\r\n now_Array: any[];\r\n ball_Array: any[];\r\n Line_Array: any[];\r\n Pos_Array: any[];\r\n time_Array: any[];\r\n color_Array: any[];\r\n\r\n\r\n @property(cc.Label)\r\n levelLabel: cc.Label = null;\r\n static _instance: any;\r\n moveArray: number[];\r\n repeat: number;\r\n numberRepeat: number;\r\n round: number;\r\n pause: boolean;\r\n\r\n onLoad () {\r\n\r\n }\r\n\r\n start () {\r\n this.fit();\r\n this.init();\r\n }\r\n fit(){\r\n this.fitTop = 450; //600\r\n this.fitBot = -600; //-700\r\n var jg = this.setFit();\r\n if(!jg){\r\n this.fitTop = 600;\r\n this.fitBot = -700;\r\n }\r\n }\r\n\r\n getSetScreenResolutionFlag () {\r\n let size = cc.winSize;\r\n let width = size.width;\r\n let height = size.height;\r\n if ((height / width) > (16.2 / 9)) return false;\r\n return true;\r\n }\r\n //判断全面屏适配\r\n setFit () {\r\n let flag = this.getSetScreenResolutionFlag();\r\n if (flag) {\r\n } else {\r\n }\r\n return flag;\r\n }\r\n\r\n //初始化数据\r\n init(){\r\n this.node.getChildByName(\"GameOver\").zIndex = 100;\r\n this.node.getChildByName(\"GameOver\").active = false;\r\n this.ball.zIndex = 100;\r\n this.bg1 = this.node.getChildByName(\"bg1\");\r\n this.bg2 = this.node.getChildByName(\"bg2\");\r\n this.time = this.node.getChildByName(\"Top\").getChildByName(\"time\").getComponent(cc.Label);\r\n this.node.getChildByName(\"showBtn\").active = false;\r\n this.begin = false;\r\n this.over = false;\r\n this.fuhuo = true;\r\n this.pause = true;\r\n this.show = false;\r\n this.round = 0; \r\n this.level = 2;\r\n this.countTime = 60;\r\n if(GameData._instance.GM_INFO.custom != 0){\r\n this.level = GameData._instance.GM_INFO.custom;\r\n // this.levelLabel.string = this.level + \"\";\r\n GameData._instance.GM_INFO.custom += 1;\r\n this.countTime = 12000000;\r\n }\r\n // this.levelLabel.string = this.level + \"\";\r\n \r\n this.timeCount = 0.1;\r\n this.clickNow = 0;\r\n this.clickCount = 0;\r\n this.timeStart = 0;\r\n this.repeat = -1;\r\n this.numberRepeat = -1;\r\n this.route_Array = [];\r\n this.moveArray = [];\r\n this.now_Array = [];\r\n this.ball_Array = [];\r\n this.Pos_Array = [];\r\n this.time_Array = [];\r\n this.color_Array = [];\r\n GameData._instance.GAME_DATA = [];\r\n GameData._instance.GM_INFO.success = false;\r\n this.startTime = 0;\r\n this.overTime = 0;\r\n this.winTime = 0;\r\n GameData._instance.GM_INFO.total = 0;\r\n\r\n GameData._instance.GM_INFO.mean_Time = 0;\r\n this.schedule(this.updateCountDownTime,1);\r\n\r\n\r\n this.startGame();\r\n }\r\n\r\n backScene(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n\r\n\r\n //下一关,或者重新开始,或者返回上一关,根据level决定\r\n reStart(type){\r\n // if(GameData._instance.GM_INFO.custom != 0){\r\n // cc.director.loadScene(\"LoadScene\");\r\n // return;\r\n // }\r\n this.node.getChildByName(\"showBtn\").active = false;\r\n this.destroyLine();\r\n this.timeCount = 0.1;\r\n this.clickNow = 0;\r\n this.timeStart = 0;\r\n this.repeat = -1;\r\n this.numberRepeat = -1;\r\n \r\n this.begin = false;\r\n this.route_Array = [];\r\n this.now_Array = [];\r\n this.ball_Array = [];\r\n this.Pos_Array = [];\r\n this.moveArray = [];\r\n this.time_Array = [];\r\n this.color_Array = [];\r\n \r\n if(type == 0){\r\n this.bgMove(1);\r\n }\r\n else if(type == 1){\r\n this.startGame();\r\n }\r\n else if(type == 2){\r\n this.bgMove(-1);\r\n }\r\n \r\n }\r\n\r\n begin_Guide(){\r\n\r\n }\r\n\r\n //获取时间戳\r\n getTime(){\r\n const timestamp = new Date().getTime();\r\n return timestamp;\r\n }\r\n\r\n //获胜\r\n passLevel(){\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n let timeArray = [];\r\n let timeCount = 0;\r\n let ball = this.ball_Array[0];\r\n for(let i=1; i< this.ball_Array.length; i++){\r\n let time = this.calculateDistance2(this.ball_Array[i].x,this.ball_Array[i].y,\r\n this.ball_Array[i-1].x,this.ball_Array[i-1].y);\r\n timeArray.push(time);\r\n }\r\n for(let k=1; k< this.ball_Array.length; k++){\r\n setTimeout(() => {\r\n cc.tween(ball)\r\n .to(timeArray[k-1],{x:this.ball_Array[k].x,y:this.ball_Array[k].y})\r\n .call(() =>{\r\n this.ball_Array[k].active = false;\r\n if(k == this.ball_Array.length-1){\r\n setTimeout(() => {\r\n this.ball.opacity = 255;\r\n this.ball.position = cc.v3(ball.x,ball.y,0);\r\n ball.active = false;\r\n this.clearSun();\r\n this.reStart(0);\r\n }, 200);\r\n }\r\n })\r\n .start();\r\n }, timeCount*1000);\r\n timeCount += (timeArray[k-1]+0.1);\r\n }\r\n }\r\n\r\n }\r\n //失败\r\n loseLevel(type){\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n let ball = this.ball_Array[0];\r\n for(let k=1; k< this.ball_Array.length; k++){\r\n cc.tween(this.ball_Array[k])\r\n .to(2,{x:ball.x,y:ball.y})\r\n .call(() =>{\r\n this.ball_Array[k].active = false;\r\n if(k == this.ball_Array.length-1){\r\n this.ball.opacity = 255;\r\n this.ball.position = cc.v3(ball.x,ball.y,0);\r\n this.clearSun();\r\n this.reStart(type);\r\n }\r\n })\r\n .start()\r\n }\r\n }\r\n\r\n }\r\n\r\n clearSun(){\r\n for(let k=0; k< this.ball_Array.length; k++){\r\n this.ball_Array[k].removeFromParent();\r\n this.ball_Array[k] = null;\r\n }\r\n }\r\n\r\n //点击太阳执行方法\r\n clickSun(data){\r\n if(this.begin == true){\r\n this.clickCount += 1;\r\n let clickTime = this.getTime();\r\n this.time_Array.push((clickTime - this.timeStart))\r\n this.timeStart = this.getTime();\r\n if(data == this.clickNow){\r\n GameData._instance.AudioManager.playAudioButton();\r\n if(this.clickNow > 0){\r\n this.createLine(cc.v2(this.ball_Array[this.clickNow-1].x,this.ball_Array[this.clickNow-1].y),\r\n cc.v2(this.ball_Array[this.clickNow].x,this.ball_Array[this.clickNow].y),\r\n 0.2); \r\n }\r\n this.clickNow += 1;\r\n // GameData._instance.GM_INFO.total += 1;\r\n \r\n setTimeout(() => {\r\n if(this.ball_Array[this.clickNow-1])\r\n this.ball_Array[this.clickNow-1].getChildByName(\"guang\").active = false;\r\n }, 200);\r\n \r\n \r\n if(this.clickNow == this.now_Array.length){\r\n this.pause = true;\r\n GameData._instance.GM_INFO.total += this.clickNow;\r\n\r\n this.overTime = this.getTime();\r\n GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime);\r\n console.log(GameData._instance.GM_INFO.mean_Time);\r\n let finish_time = parseInt((this.overTime - this.startTime)/100+\"\");\r\n this.startTime = 0; this.overTime = 0;\r\n let color = \"y\";\r\n if(this.level < 4 && this.level > 1)color = \"yr\";\r\n else if(this.level >= 4) color = \"yrb\";\r\n let win = this.node.getChildByName(\"Win\");\r\n win.active = true; win.setScale(0);\r\n GameData._instance.AudioManager.playWin();\r\n this.round += 1;\r\n let sunArray = [];\r\n if(this.moveArray.length > 0){\r\n for(let m=0 ; m{\r\n win.active = false;\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n if(this.level >= 15){\r\n GameData._instance.GM_INFO.success = true;\r\n this.level += 0;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n \r\n this.passLevel();\r\n }\r\n else{\r\n this.level += 1;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n \r\n this.passLevel();\r\n }\r\n }\r\n\r\n })\r\n .start();\r\n }\r\n }\r\n else{\r\n this.setLoss();\r\n }\r\n // this.hitAction(data)\r\n }\r\n\r\n }\r\n\r\n setLoss(){\r\n GameData._instance.AudioManager.playWarning();\r\n this.begin = false;\r\n this.overTime = this.getTime();\r\n GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime);\r\n console.log(GameData._instance.GM_INFO.mean_Time);\r\n let finish_time = parseInt((this.overTime - this.startTime)/100+\"\");\r\n this.startTime = 0; this.overTime = 0;\r\n let color = \"y\";\r\n if(this.level < 4 && this.level > 1)color = \"yr\";\r\n else if(this.level >= 4) color = \"yrb\";\r\n this.round += 1;\r\n let sunArray = [];\r\n if(this.moveArray.length > 0){\r\n for(let m=0 ; m 2){\r\n this.level -= 1;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n // this.fuhuo = false;\r\n this.loseLevel(2);\r\n }\r\n else{\r\n this.loseLevel(1);\r\n }\r\n }\r\n let over = this.node.getChildByName(\"Over\");\r\n cc.tween(over)\r\n .to(0.25,{opacity:255})\r\n .delay(0.1)\r\n .to(0.2,{opacity:0})\r\n .delay(0.1)\r\n .to(0.15,{opacity:255})\r\n .delay(0.1)\r\n .to(0.1,{opacity:0})\r\n .start();\r\n }\r\n\r\n hitAction(data){\r\n this.hit.active = true; this.hit.opacity = 0;\r\n this.hit.setPosition\r\n this.hit.setPosition(this.ball_Array[data].x+35,this.ball_Array[data].y+35);\r\n cc.tween(this.hit)\r\n .to(0,{opacity:255})\r\n .to(0.2,{position:cc.v3(this.hit.x-35,this.hit.y-35,0)})\r\n .delay(0.2)\r\n .to(0.1,{opacity:0})\r\n .call(() =>{\r\n this.hit.active = false;\r\n })\r\n .start();\r\n }\r\n\r\n //开始游戏\r\n startGame(){\r\n if(this.over == false && this.countTime > 0){\r\n this.pause = true;\r\n this.createSun();\r\n this.begin = false;\r\n cc.tween(this.ball)\r\n .to(0.5,{opacity:255,scale:1.3})\r\n .start();\r\n // this.runGame()\r\n }\r\n }\r\n\r\n runGame(){\r\n let time = -650;\r\n for(let i=0; i {\r\n if(this.over == false){\r\n let temp = this.now_Array[i].timeCount;\r\n if(temp > 0.5) temp = 0.5;\r\n if(i != 0){\r\n if(this.ball && this.now_Array[i]){\r\n this.createLine(cc.v2(this.ball.x,this.ball.y),cc.v2(this.now_Array[i].x,this.now_Array[i].y),\r\n this.now_Array[i].time-temp);\r\n }\r\n }\r\n \r\n cc.tween(this.ball)\r\n .to(this.now_Array[i].time-temp,{x:this.now_Array[i].x,y:this.now_Array[i].y})\r\n .to(0.1,{scale:1})\r\n .call(()=>{\r\n this.createBall(i,this.now_Array[i].color,this.now_Array[i].speed,this.now_Array[i].repeat);\r\n if(i == this.now_Array.length -1){\r\n this.ball.opacity = 0;\r\n setTimeout(() => {\r\n this.destroyLine();\r\n this.beginGame();\r\n if(GameData._instance.LEVEL_INFO[this.level-1].moveNumber<1){\r\n this.pause = false;\r\n }\r\n else{\r\n this.moveAction();\r\n }\r\n \r\n }, 150);\r\n }\r\n })\r\n .start()\r\n }\r\n\r\n }, time);\r\n \r\n }\r\n }\r\n\r\n createMove(){\r\n if(this.over == false){\r\n let info = GameData._instance.LEVEL_INFO[this.level-1];\r\n //改变移动速度\r\n var speed = 7;\r\n if(info.moveSpeed >= 2){\r\n speed = 7 - info.moveSpeed/2;\r\n }\r\n if(info.repeat == 1){\r\n this.repeat = parseInt((Math.random()*(info.number-1)+1) + \"\");\r\n let tempNumber = 0;\r\n // this.repeat = 4;\r\n if(this.repeat > 4){\r\n this.numberRepeat = parseInt(Math.random()*4 + \"\");\r\n if(this.repeat == (info.number-1)) //如果是最后一个 不能跟第一个重叠\r\n this.numberRepeat = this.repeat - parseInt( (Math.random()*3 + 2)+ \"\")\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n this.Pos_Array[this.repeat ] = tempNumber;\r\n }\r\n else{ // 0 1 2 3 4 5 \r\n // 6 - 3 - 1 = 2 4 01 4\r\n if(this.repeat == 0) this.repeat = 1;\r\n if((info.number-1-this.repeat ) == 2){\r\n this.numberRepeat = info.number - 1;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n else if((info.number-1-this.repeat ) == 1){\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n } \r\n else if((info.number-1-this.repeat ) == 0){\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n } \r\n else if((info.number-1-this.repeat ) > 2){\r\n this.numberRepeat = parseInt(Math.random()*(info.number-this.repeat -2) + \"\") + this.repeat + 2 ;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n else{\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n this.Pos_Array[this.repeat] = tempNumber;\r\n }\r\n }\r\n if(info.moveNumber > 0){\r\n //0 1 2 3 4 5 6 7 8 9\r\n //可移动区分\r\n let pos = cc.v2(0,0);\r\n if(info.number == 3) this.moveArray = [0,1,0];\r\n else if(info.number == 4) this.moveArray = [0,0,1,0];\r\n else if(info.number == 5) this.moveArray = [0,0,1,0,0];\r\n else if(info.number == 5) this.moveArray = [0,0,1,0,0];\r\n else if(info.number == 6) this.moveArray = [0,0,1,1,0,0];\r\n else if(info.number == 7) this.moveArray = [0,0,1,1,1,0,0];\r\n else if(info.number == 8) this.moveArray = [0,0,0,1,1,1,1,0];\r\n else if(info.number == 9) this.moveArray = [0,0,1,1,1,1,1,0,0];\r\n else if(info.number == 10) this.moveArray = [0,0,0,1,1,1,1,1,0,0];\r\n let timeOut = 0;\r\n //打乱可移动顺序\r\n // this.moveArray .sort(() => Math.random() - 0.5);\r\n // debugger;\r\n //设置重叠\r\n // this.repeat = -1;\r\n // this.numberRepeat = -1;\r\n\r\n //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7\r\n for(let k =0; k= 0; m--){\r\n if(m != k && this.moveArray[m] == 0 && m!= this.repeat && m!= this.numberRepeat){\r\n this.moveArray[m] = 1;\r\n this.moveArray[k] = 0;\r\n m = -1;\r\n }\r\n }\r\n }\r\n }\r\n for(let i =0; i {\r\n pos = this.getPos2(true,i);\r\n this.Pos_Array[i] = pos;\r\n }, timeOut*300);\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n //移动后数据 重新刷一遍赋值\r\n updateArray(){\r\n for(let i=0; i= 2){\r\n speed = 7 - info.moveSpeed/2;\r\n } \r\n \r\n\r\n if(info.moveNumber > 0){\r\n //0 1 2 3 4 5 6 7 8 9\r\n //可移动区分\r\n let pos = cc.v2(0,0);\r\n\r\n\r\n // this.repeat = -1;\r\n // this.numberRepeat = -1;\r\n\r\n //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7\r\n for(let k =0; k= 0; m--){\r\n if(m != k && this.moveArray[m] == 0 && m!= this.repeat && m!= this.numberRepeat){\r\n this.moveArray[m] = 1;\r\n this.moveArray[k] = 0;\r\n m = -1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n let lastNumber = 0;\r\n //锁定最后一个可移动的\r\n for(let j =0; j{\r\n this.ball_Array[i].getComponent(\"Sun\").move = false;\r\n })\r\n .start();\r\n }\r\n //如果是最后一个\r\n else{\r\n let time = speed*this.calculateDistance3(this.ball_Array[i].x,this.ball_Array[i].y,this.Pos_Array[i].x,this.Pos_Array[i].y);\r\n this.ball_Array[i].getComponent(\"Sun\").move = true;\r\n cc.tween(this.ball_Array[i])\r\n .to(time,{position:this.Pos_Array[i]})\r\n .call(() =>{\r\n this.ball_Array[i].getComponent(\"Sun\").move = false;\r\n })\r\n .start();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n beginGame(){\r\n this.begin = true;\r\n this.startTime = this.getTime();\r\n this.timeStart = this.getTime();\r\n this.pause = false;\r\n // this.node.getChildByName(\"showBtn\").active = true;\r\n }\r\n\r\n getRandomArray(lastNumber){\r\n let num = parseInt(Math.random()*8 - 4 + \"\");\r\n let jg = num + lastNumber;\r\n if(num > 1 || num <-1){\r\n if( num == 0 || ( jg<0 || jg >= this.Pos_Array.length)){\r\n jg = this.getRandomArray(lastNumber);\r\n }\r\n }\r\n else{\r\n jg = this.getRandomArray(lastNumber);\r\n }\r\n \r\n return jg;\r\n }\r\n\r\n //创建太阳所需数据\r\n createSun(){\r\n let levelData = GameData._instance.LEVEL_INFO[this.level-1];\r\n let tiemOut = 0;\r\n for(let l=0; l {\r\n if(this.over == false){\r\n let pos = this.getPos(false,l);\r\n this.Pos_Array.push(pos);\r\n if(this.Pos_Array.length == levelData.number){\r\n this.createMove();\r\n this.createPos();\r\n }\r\n }\r\n\r\n }, tiemOut*100);\r\n \r\n }\r\n // 0 0 0 0 0 0 0 0 0 0 0\r\n\r\n }\r\n\r\n createPos(){\r\n let data = {x:this.ball.x,y:this.ball.y,time:0,timeCount:0,color:0,speed:0,repeat:false};\r\n let levelData = GameData._instance.LEVEL_INFO[this.level-1];\r\n //颜色区分\r\n let colorArray = [0,1];\r\n for(let j=0; j Math.random() - 0.5);\r\n }\r\n colorArray.sort(() => Math.random() - 0.5);\r\n if(levelData.number == 4) colorArray = [0,0,0,0];\r\n this.color_Array = colorArray;\r\n\r\n\r\n for(let i=0; i 0){\r\n for(let i=0; i 0){\r\n for(let i=0; i 160){\r\n if(num == true){\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxMove){\r\n jg = true;\r\n } \r\n else jg = false;\r\n }\r\n else{\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxMove){\r\n jg = true;\r\n } \r\n else jg = false;\r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n getDistance2(x1, y1, x2, y2,num) {\r\n var jg = false;\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 160){\r\n if(num == true){\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxDistance) jg = true;\r\n else jg = false;\r\n }\r\n else{\r\n jg = true;\r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n\r\n createBall(number,color,speed,repeat){\r\n let ball = null;\r\n if(color == 0)ball = cc.instantiate(this.qiu1);\r\n else if(color == 1)ball = cc.instantiate(this.qiu2);\r\n else if(color == 2)ball = cc.instantiate(this.qiu3);\r\n ball.parent = this.node.getChildByName(\"Sun\");\r\n ball.zIndex = this.now_Array.length - number;\r\n ball.setPosition(this.ball.x,this.ball.y);\r\n ball.getComponent(\"Sun\").init(number,color,speed,repeat);\r\n this.ball_Array.push(ball);\r\n }\r\n\r\n destroyLine() {\r\n for(let i =0; i< this.node.getChildByName(\"Line\").children.length;i++){\r\n if(this.node.getChildByName(\"Line\").children[i]){\r\n this.node.getChildByName(\"Line\").children[i].removeFromParent();\r\n this.node.getChildByName(\"Line\").children[i] = null;\r\n }\r\n }\r\n this.node.getChildByName(\"Line\").removeAllChildren();\r\n }\r\n\r\n createLine(start,end,time){\r\n let line = cc.instantiate(this.linePrefab);\r\n line.parent = this.node.getChildByName(\"Line\");\r\n line.setPosition(start.x,start.y);\r\n \r\n const dx = end.x - start.x;\r\n const dy = end.y - start.y;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n line.height = distance;\r\n line.getComponent(cc.Sprite).fillRange = 0;\r\n line.angle = -this.calculateAngle(start.x,start.y,end.x,end.y);\r\n cc.tween(line.getComponent(cc.Sprite))\r\n .to(time,{fillRange:1})\r\n .start();\r\n }\r\n\r\n calculateAngle(x1, y1, x2, y2) {\r\n var angle = Math.atan2(y2-y1,x2-x1)*180 / Math.PI - 90;\r\n return -angle;\r\n }\r\n\r\n calculateDistance(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 800) distance = 800;\r\n const time = distance/800 * 0.6;\r\n return time;\r\n }\r\n\r\n calculateDistance2(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 1200) distance = 1200;\r\n const time = distance/1200 * 1;\r\n return time;\r\n }\r\n\r\n calculateDistance3(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 1200) distance = 1200;\r\n const time = distance/1200 * 1.5;\r\n return time;\r\n }\r\n\r\n //背景移动\r\n bgMove(type){\r\n let random = Math.random()*300 + 300;\r\n let posX = Math.random()*600 - 300;\r\n \r\n let y1 = this.bg1.y - random*type;\r\n // let y2 = this.bg2.y - random*type;\r\n let time1 = 0.7*(random/400);\r\n\r\n cc.tween(this.ball)\r\n .to(0.3,{scale:1.3})\r\n .to(time1,{x:posX})\r\n .start();\r\n\r\n cc.tween(this.bg1)\r\n .delay(0.3)\r\n .to(time1,{y:y1})\r\n .start();\r\n\r\n // cc.tween(this.bg2)\r\n // .delay(0.3)\r\n // .to(time1,{y:y2})\r\n // .start();\r\n\r\n setTimeout(() => {\r\n // if(this.over == false && GameData._instance.GM_INFO.custom == 0){\r\n // this.startGame();\r\n // }\r\n if(this.over == false){\r\n this.startGame();\r\n }\r\n \r\n }, time1*1500);\r\n }\r\n //时间格式转换\r\n getTimeMargin(second:number) {\r\n let total = 0;\r\n total = second;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n return m + ':' + miao\r\n }\r\n\r\n \r\n //如果是倒计时 调用此方法\r\n updateCountDownTime () {\r\n if (this.countTime > 0 && this.pause == false) {\r\n this.countTime -= 1;\r\n this.time.string = this.getTimeMargin(this.countTime);\r\n if(this.countTime < 5){\r\n cc.tween(this.time.node)\r\n .to(0.25,{scale:1.5,color:cc.color(255,0,0)})\r\n .to(0.25,{scale:1,color:cc.color(255,255,255)})\r\n .start()\r\n let over = this.node.getChildByName(\"Over\");\r\n cc.tween(over)\r\n .to(0.2,{opacity:255})\r\n .delay(0.1)\r\n .to(0.2,{opacity:0})\r\n .start();\r\n }\r\n if(this.countTime <= 0){\r\n this.begin = false;\r\n this.over = true;\r\n this.unschedule(this.updateCountDownTime);\r\n this.setLoss();\r\n var time = 0;\r\n console.log(GameData._instance.GM_INFO.mean_Time,this.clickCount);\r\n if(this.clickCount > 0) time = parseInt(GameData._instance.GM_INFO.mean_Time/this.clickCount + \"\");\r\n \r\n GameData._instance.GM_INFO.mean_Time = parseInt(time/100 + \"\");\r\n\r\n GameData._instance.GM_INFO.mean_Time = GameData._instance.GM_INFO.mean_Time /10;\r\n console.log( GameData._instance.GM_INFO.mean_Time);\r\n this.setRank(time);\r\n }\r\n }\r\n }\r\n\r\n setData(){\r\n let data = GameData._instance.GAME_DATA;\r\n let matchId = this.getMatchId();\r\n \r\n let postData = {\r\n \"matchId\":matchId,\r\n \"data\": data\r\n };\r\n // console.log(\"上传数据:\",postData)\r\n HttpUtil.uploadUserLogData(postData,function(){})\r\n }\r\n\r\n getMatchId (){\r\n let matchId = cc.sys.localStorage.getItem(\"matchId\");\r\n if(matchId == \"undifend\" || matchId==null){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n let char = parseInt(matchId[10]);\r\n char += 1;\r\n matchId = matchId.slice(0, 10) + char + \"\";\r\n GameData._instance.GM_INFO.matchId = matchId;\r\n cc.sys.localStorage.setItem(\"matchId\",matchId);\r\n }\r\n return matchId;\r\n }\r\n\r\n setMatchId (){\r\n // 定义包含可用字符的字符集\r\n const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n // 创建一个数组以保存随机字符\r\n const uuidArray = [];\r\n \r\n // 循环10次 生成10位的UUID\r\n for (let i = 0; i < 10; i++) {\r\n // 生成随机索引,范围是字符集的长度\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n // 从字符集中获取随机字符\r\n const randomChar = characters.charAt(randomIndex);\r\n // 将字符添加到数组中\r\n uuidArray.push(randomChar);\r\n }\r\n let data = uuidArray.join('') + 1 + \"\";\r\n cc.sys.localStorage.setItem(\"matchNumber\",1);\r\n cc.sys.localStorage.setItem(\"matchId\",data);\r\n GameData._instance.GM_INFO.matchId = data;\r\n return data;\r\n }\r\n\r\n setRank(time){\r\n let postData = {\r\n \"type\":1,\r\n \"reactionTime\": time,\r\n \"totalSunCount\": GameData._instance.GM_INFO.total,\r\n \"success\": GameData._instance.GM_INFO.success\r\n \r\n };\r\n console.log(postData);\r\n HttpUtil.rankData(1,function(){},postData);\r\n this.node.getChildByName(\"GameOver\").active = true;\r\n this.node.getChildByName(\"GameOver\").opacity = 0;\r\n cc.tween(this.node.getChildByName(\"GameOver\"))\r\n .to(0.4,{opacity:255})\r\n .delay(2)\r\n .to(0.4,{opacity:50})\r\n .call(() =>{\r\n cc.director.loadScene(\"OverScene\");\r\n })\r\n .start()\r\n \r\n }\r\n\r\n outPut(){\r\n\r\n let data = GameData._instance.CLICK_DATA;\r\n GameData._instance.GAME_DATA = [];\r\n // if(data.succeed == true) this.label1.string = \"成功/失败:成功\";\r\n // else if(data.succeed == false) this.label1.string = \"成功/失败:失败\";\r\n // this.label2.string = \"太阳总数量:\"+data.sun_total;\r\n // this.label3.string = \"太阳移动数量:\"+data.sun_move;\r\n // this.label4.string = \"太阳移动速度:\"+data.sun_speed;\r\n // this.label5.string = \"太阳重叠个数:\"+data.sun_overlap;\r\n // if(data.sun_color == \"y\") this.label6.string = \"太阳颜色:yellow\";\r\n // else if(data.sun_color == \"yr\") this.label6.string = \"太阳颜色:yellow,red\";\r\n // else if(data.sun_color == \"yrb\") this.label6.string = \"太阳颜色:yellow,red,black\";\r\n \r\n // this.label7.string = \"完成时间:\"+data.finish_time+\"s\";\r\n // this.label8.string = \"难度等级:\"+data.sun_difficulty+\"级\";\r\n\r\n // if(data.sun_color == \"y\") console.log(\"太阳颜色:\",\"yellow\" );\r\n // else if(data.sun_color == \"yr\") console.log(\"太阳颜色:\",\"yellow,red\" );\r\n // else if(data.sun_color == \"yrb\") console.log(\"太阳颜色:\",\"yellow,red,black\" );\r\n\r\n GameData._instance.GAME_DATA.push(GameData._instance.CLICK_DATA);\r\n GameData._instance.CLICK_init();\r\n }\r\n\r\n showNumber(){\r\n if(this.show == false) this.show = true;\r\n else if(this.show == true) this.show = false;\r\n for(let i=0; i (16.2 / 9)) return false;\r\n return true;\r\n }\r\n //判断全面屏适配\r\n setFit () {\r\n let flag = this.getSetScreenResolutionFlag();\r\n if (flag) {\r\n } else {\r\n }\r\n return flag;\r\n }\r\n\r\n //初始化数据\r\n init(){\r\n this.node.getChildByName(\"GameOver\").zIndex = 100;\r\n this.node.getChildByName(\"GameOver\").active = false;\r\n this.ball.zIndex = 100;\r\n this.bg1 = this.node.getChildByName(\"bg1\");\r\n this.bg2 = this.node.getChildByName(\"bg2\");\r\n this.time = this.node.getChildByName(\"Top\").getChildByName(\"time\").getComponent(cc.Label);\r\n this.node.getChildByName(\"showBtn\").active = false;\r\n this.begin = false;\r\n this.over = false;\r\n this.fuhuo = true;\r\n this.pause = true;\r\n this.show = false;\r\n this.round = 0; \r\n this.level = 2;\r\n this.countTime = 60;\r\n if(GameData._instance.GM_INFO.custom != 0){\r\n this.level = GameData._instance.GM_INFO.custom;\r\n // this.levelLabel.string = this.level + \"\";\r\n GameData._instance.GM_INFO.custom += 1;\r\n this.countTime = 12000000;\r\n }\r\n // this.levelLabel.string = this.level + \"\";\r\n \r\n this.timeCount = 0.1;\r\n this.clickNow = 0;\r\n this.clickCount = 0;\r\n this.timeStart = 0;\r\n this.repeat = -1;\r\n this.numberRepeat = -1;\r\n this.route_Array = [];\r\n this.moveArray = [];\r\n this.now_Array = [];\r\n this.ball_Array = [];\r\n this.Pos_Array = [];\r\n this.time_Array = [];\r\n this.color_Array = [];\r\n GameData._instance.GAME_DATA = [];\r\n GameData._instance.GM_INFO.success = false;\r\n this.startTime = 0;\r\n this.overTime = 0;\r\n this.winTime = 0;\r\n GameData._instance.GM_INFO.total = 0;\r\n\r\n GameData._instance.GM_INFO.mean_Time = 0;\r\n this.schedule(this.updateCountDownTime,1);\r\n\r\n\r\n this.startGame();\r\n }\r\n\r\n backScene(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n\r\n\r\n //下一关,或者重新开始,或者返回上一关,根据level决定\r\n reStart(type){\r\n // if(GameData._instance.GM_INFO.custom != 0){\r\n // cc.director.loadScene(\"LoadScene\");\r\n // return;\r\n // }\r\n this.node.getChildByName(\"showBtn\").active = false;\r\n this.destroyLine();\r\n this.timeCount = 0.1;\r\n this.clickNow = 0;\r\n this.timeStart = 0;\r\n this.repeat = -1;\r\n this.numberRepeat = -1;\r\n \r\n this.begin = false;\r\n this.route_Array = [];\r\n this.now_Array = [];\r\n this.ball_Array = [];\r\n this.Pos_Array = [];\r\n this.moveArray = [];\r\n this.time_Array = [];\r\n this.color_Array = [];\r\n \r\n if(type == 0){\r\n this.bgMove(1);\r\n }\r\n else if(type == 1){\r\n this.startGame();\r\n }\r\n else if(type == 2){\r\n this.bgMove(-1);\r\n }\r\n \r\n }\r\n\r\n begin_Guide(){\r\n\r\n }\r\n\r\n //获取时间戳\r\n getTime(){\r\n const timestamp = new Date().getTime();\r\n return timestamp;\r\n }\r\n\r\n //获胜\r\n passLevel(){\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n let timeArray = [];\r\n let timeCount = 0;\r\n let ball = this.ball_Array[0];\r\n for(let i=1; i< this.ball_Array.length; i++){\r\n let time = this.calculateDistance2(this.ball_Array[i].x,this.ball_Array[i].y,\r\n this.ball_Array[i-1].x,this.ball_Array[i-1].y);\r\n timeArray.push(time);\r\n }\r\n for(let k=1; k< this.ball_Array.length; k++){\r\n setTimeout(() => {\r\n cc.tween(ball)\r\n .to(timeArray[k-1],{x:this.ball_Array[k].x,y:this.ball_Array[k].y})\r\n .call(() =>{\r\n this.ball_Array[k].active = false;\r\n if(k == this.ball_Array.length-1){\r\n setTimeout(() => {\r\n this.ball.opacity = 255;\r\n this.ball.position = cc.v3(ball.x,ball.y,0);\r\n ball.active = false;\r\n this.clearSun();\r\n this.reStart(0);\r\n }, 200);\r\n }\r\n })\r\n .start();\r\n }, timeCount*1000);\r\n timeCount += (timeArray[k-1]+0.1);\r\n }\r\n }\r\n\r\n }\r\n //失败\r\n loseLevel(type){\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n let ball = this.ball_Array[0];\r\n for(let k=1; k< this.ball_Array.length; k++){\r\n cc.tween(this.ball_Array[k])\r\n .to(2,{x:ball.x,y:ball.y})\r\n .call(() =>{\r\n this.ball_Array[k].active = false;\r\n if(k == this.ball_Array.length-1){\r\n this.ball.opacity = 255;\r\n this.ball.position = cc.v3(ball.x,ball.y,0);\r\n this.clearSun();\r\n this.reStart(type);\r\n }\r\n })\r\n .start()\r\n }\r\n }\r\n\r\n }\r\n\r\n clearSun(){\r\n for(let k=0; k< this.ball_Array.length; k++){\r\n this.ball_Array[k].removeFromParent();\r\n this.ball_Array[k] = null;\r\n }\r\n }\r\n\r\n //点击太阳执行方法\r\n clickSun(data){\r\n if(this.begin == true){\r\n this.clickCount += 1;\r\n let clickTime = this.getTime();\r\n this.time_Array.push((clickTime - this.timeStart))\r\n this.timeStart = this.getTime();\r\n if(data == this.clickNow){\r\n GameData._instance.AudioManager.playAudioButton();\r\n if(this.clickNow > 0){\r\n this.createLine(cc.v2(this.ball_Array[this.clickNow-1].x,this.ball_Array[this.clickNow-1].y),\r\n cc.v2(this.ball_Array[this.clickNow].x,this.ball_Array[this.clickNow].y),\r\n 0.2); \r\n }\r\n this.clickNow += 1;\r\n // GameData._instance.GM_INFO.total += 1;\r\n if(this.ball_Array[this.clickNow-1])\r\n this.ball_Array[this.clickNow-1].getChildByName(\"guang\").active = false;\r\n // setTimeout(() => {\r\n \r\n // }, 200);\r\n \r\n \r\n if(this.clickNow == this.now_Array.length){\r\n this.pause = true;\r\n GameData._instance.GM_INFO.total += this.clickNow;\r\n\r\n this.overTime = this.getTime();\r\n if(this.startTime > 0 && this.overTime > 0){\r\n GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime);\r\n }\r\n // console.log(\"成功\",GameData._instance.GM_INFO.mean_Time,this.overTime,this.startTime);\r\n // console.log(GameData._instance.GM_INFO.mean_Time);\r\n let finish_time = parseInt((this.overTime - this.startTime)/100+\"\");\r\n this.startTime = 0; this.overTime = 0;\r\n // console.log(\"33333333\");\r\n let color = \"y\";\r\n if(this.level < 4 && this.level > 1)color = \"yr\";\r\n else if(this.level >= 4) color = \"yrb\";\r\n let win = this.node.getChildByName(\"Win\");\r\n win.active = true; win.setScale(0);\r\n GameData._instance.AudioManager.playWin();\r\n this.round += 1;\r\n let sunArray = [];\r\n if(this.moveArray.length > 0){\r\n for(let m=0 ; m{\r\n win.active = false;\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n if(this.level >= 15){\r\n GameData._instance.GM_INFO.success = true;\r\n this.level += 0;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n \r\n this.passLevel();\r\n }\r\n else{\r\n this.level += 1;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n \r\n this.passLevel();\r\n }\r\n }\r\n\r\n })\r\n .start();\r\n }\r\n }\r\n else{\r\n this.setLoss();\r\n }\r\n // this.hitAction(data)\r\n }\r\n\r\n }\r\n\r\n setLoss(){\r\n GameData._instance.AudioManager.playWarning();\r\n this.begin = false;\r\n this.overTime = this.getTime();\r\n if(this.startTime > 0 && this.overTime > 0){\r\n GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime);\r\n }\r\n let finish_time = parseInt((this.overTime - this.startTime)/100+\"\");\r\n this.startTime = 0; this.overTime = 0;\r\n let color = \"y\";\r\n if(this.level < 4 && this.level > 1)color = \"yr\";\r\n else if(this.level >= 4) color = \"yrb\";\r\n this.round += 1;\r\n let sunArray = [];\r\n if(this.moveArray.length > 0){\r\n for(let m=0 ; m 2){\r\n this.level -= 1;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n // this.fuhuo = false;\r\n this.loseLevel(2);\r\n }\r\n else{\r\n this.loseLevel(1);\r\n }\r\n }\r\n let over = this.node.getChildByName(\"Over\");\r\n cc.tween(over)\r\n .to(0.25,{opacity:255})\r\n .delay(0.1)\r\n .to(0.2,{opacity:0})\r\n .delay(0.1)\r\n .to(0.15,{opacity:255})\r\n .delay(0.1)\r\n .to(0.1,{opacity:0})\r\n .start();\r\n }\r\n\r\n hitAction(data){\r\n this.hit.active = true; this.hit.opacity = 0;\r\n this.hit.setPosition\r\n this.hit.setPosition(this.ball_Array[data].x+35,this.ball_Array[data].y+35);\r\n cc.tween(this.hit)\r\n .to(0,{opacity:255})\r\n .to(0.2,{position:cc.v3(this.hit.x-35,this.hit.y-35,0)})\r\n .delay(0.2)\r\n .to(0.1,{opacity:0})\r\n .call(() =>{\r\n this.hit.active = false;\r\n })\r\n .start();\r\n }\r\n\r\n //开始游戏\r\n startGame(){\r\n if(this.over == false && this.countTime > 0){\r\n this.pause = true;\r\n this.createSun();\r\n this.begin = false;\r\n cc.tween(this.ball)\r\n .to(0.5,{opacity:255,scale:1.3})\r\n .start();\r\n // this.runGame()\r\n }\r\n }\r\n\r\n runGame(){\r\n let time = -650;\r\n for(let i=0; i {\r\n if(this.over == false){\r\n let temp = this.now_Array[i].timeCount;\r\n if(temp > 0.5) temp = 0.5;\r\n if(i != 0){\r\n if(this.ball && this.now_Array[i]){\r\n this.createLine(cc.v2(this.ball.x,this.ball.y),cc.v2(this.now_Array[i].x,this.now_Array[i].y),\r\n this.now_Array[i].time-temp);\r\n }\r\n }\r\n \r\n cc.tween(this.ball)\r\n .to(this.now_Array[i].time-temp,{x:this.now_Array[i].x,y:this.now_Array[i].y})\r\n .to(0.1,{scale:1})\r\n .call(()=>{\r\n this.createBall(i,this.now_Array[i].color,this.now_Array[i].speed,this.now_Array[i].repeat);\r\n if(i == this.now_Array.length -1){\r\n this.ball.opacity = 0;\r\n setTimeout(() => {\r\n this.destroyLine();\r\n this.beginGame();\r\n if(GameData._instance.LEVEL_INFO[this.level-1].moveNumber<1){\r\n this.pause = false;\r\n }\r\n else{\r\n this.moveAction();\r\n }\r\n \r\n }, 150);\r\n }\r\n })\r\n .start()\r\n }\r\n\r\n }, time);\r\n \r\n }\r\n }\r\n\r\n createMove(){\r\n if(this.over == false){\r\n let info = GameData._instance.LEVEL_INFO[this.level-1];\r\n //改变移动速度\r\n var speed = 7;\r\n if(info.moveSpeed >= 2){\r\n speed = 7 - info.moveSpeed/2;\r\n }\r\n if(info.repeat == 1){\r\n this.repeat = parseInt((Math.random()*(info.number-1)+1) + \"\");\r\n let tempNumber = 0;\r\n // this.repeat = 4;\r\n if(this.repeat > 4){\r\n this.numberRepeat = parseInt(Math.random()*4 + \"\");\r\n if(this.repeat == (info.number-1)) //如果是最后一个 不能跟第一个重叠\r\n this.numberRepeat = this.repeat - parseInt( (Math.random()*3 + 2)+ \"\")\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n this.Pos_Array[this.repeat ] = tempNumber;\r\n }\r\n else{ // 0 1 2 3 4 5 \r\n // 6 - 3 - 1 = 2 4 01 4\r\n if(this.repeat == 0) this.repeat = 1;\r\n if((info.number-1-this.repeat ) == 2){\r\n this.numberRepeat = info.number - 1;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n else if((info.number-1-this.repeat ) == 1){\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n } \r\n else if((info.number-1-this.repeat ) == 0){\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n } \r\n else if((info.number-1-this.repeat ) > 2){\r\n this.numberRepeat = parseInt(Math.random()*(info.number-this.repeat -2) + \"\") + this.repeat + 2 ;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n else{\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n this.Pos_Array[this.repeat] = tempNumber;\r\n }\r\n }\r\n if(info.moveNumber > 0){\r\n //0 1 2 3 4 5 6 7 8 9\r\n //可移动区分\r\n let pos = cc.v2(0,0);\r\n \r\n for(let z=0; z Math.random() - 0.5);\r\n if(this.moveArray[0] == 1){\r\n for(let r=info.number-1; r>=0; r--){\r\n if(this.moveArray[r] == 0){\r\n this.moveArray[r] = 1;\r\n this.moveArray[0] = 0;\r\n r = -1;\r\n }\r\n }\r\n }\r\n // debugger;\r\n //设置重叠\r\n // this.repeat = -1;\r\n // this.numberRepeat = -1;\r\n\r\n //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7\r\n for(let k =0; k= 0; m--){\r\n if(m != k && this.moveArray[m] == 0 && m!= this.repeat && m!= this.numberRepeat){\r\n this.moveArray[m] = 1;\r\n this.moveArray[k] = 0;\r\n m = -1;\r\n }\r\n }\r\n }\r\n }\r\n for(let i =0; i {\r\n pos = this.getPos2(true,i);\r\n this.Pos_Array[i] = pos;\r\n }, timeOut*300);\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n //移动后数据 重新刷一遍赋值\r\n updateArray(){\r\n for(let i=0; i= 2){\r\n speed = 7 - info.moveSpeed/2;\r\n } \r\n \r\n\r\n if(info.moveNumber > 0){\r\n //0 1 2 3 4 5 6 7 8 9\r\n //可移动区分\r\n let pos = cc.v2(0,0);\r\n\r\n\r\n // this.repeat = -1;\r\n // this.numberRepeat = -1;\r\n\r\n //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7\r\n for(let k =0; k= 0; m--){\r\n if(m != k && this.moveArray[m] == 0 && m!= this.repeat && m!= this.numberRepeat){\r\n this.moveArray[m] = 1;\r\n this.moveArray[k] = 0;\r\n m = -1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n let lastNumber = 0;\r\n //锁定最后一个可移动的\r\n for(let j =0; j{\r\n this.ball_Array[i].getComponent(\"Sun\").move = false;\r\n })\r\n .start();\r\n }\r\n //如果是最后一个\r\n else{\r\n let time = speed*this.calculateDistance3(this.ball_Array[i].x,this.ball_Array[i].y,this.Pos_Array[i].x,this.Pos_Array[i].y);\r\n this.ball_Array[i].getComponent(\"Sun\").move = true;\r\n cc.tween(this.ball_Array[i])\r\n .to(time,{position:this.Pos_Array[i]})\r\n .call(() =>{\r\n this.ball_Array[i].getComponent(\"Sun\").move = false;\r\n })\r\n .start();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n beginGame(){\r\n this.begin = true;\r\n this.startTime = this.getTime();\r\n this.timeStart = this.getTime();\r\n this.pause = false;\r\n // this.node.getChildByName(\"showBtn\").active = true;\r\n }\r\n\r\n getRandomArray(lastNumber){\r\n let num = parseInt(Math.random()*8 - 4 + \"\");\r\n let jg = num + lastNumber;\r\n if(num > 1 || num <-1){\r\n if( num == 0 || ( jg<0 || jg >= this.Pos_Array.length)){\r\n jg = this.getRandomArray(lastNumber);\r\n }\r\n }\r\n else{\r\n jg = this.getRandomArray(lastNumber);\r\n }\r\n \r\n return jg;\r\n }\r\n\r\n //创建太阳所需数据\r\n createSun(){\r\n let levelData = GameData._instance.LEVEL_INFO[this.level-1];\r\n let tiemOut = 0;\r\n for(let l=0; l {\r\n if(this.over == false){\r\n let pos = this.getPos(false,l);\r\n this.Pos_Array.push(pos);\r\n if(this.Pos_Array.length == levelData.number){\r\n this.createMove();\r\n this.createPos();\r\n }\r\n }\r\n\r\n }, tiemOut*100);\r\n \r\n }\r\n // 0 0 0 0 0 0 0 0 0 0 0\r\n\r\n }\r\n\r\n createPos(){\r\n let data = {x:this.ball.x,y:this.ball.y,time:0,timeCount:0,color:0,speed:0,repeat:false};\r\n let levelData = GameData._instance.LEVEL_INFO[this.level-1];\r\n //颜色区分\r\n let colorArray = [0,1];\r\n for(let j=0; j Math.random() - 0.5);\r\n }\r\n colorArray.sort(() => Math.random() - 0.5);\r\n if(levelData.number == 4) colorArray = [0,0,0,0];\r\n this.color_Array = colorArray;\r\n\r\n\r\n for(let i=0; i 0){\r\n for(let i=0; i 0){\r\n for(let i=0; i 160){\r\n if(num == true){\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxMove){\r\n jg = true;\r\n } \r\n else jg = false;\r\n }\r\n else{\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxMove){\r\n jg = true;\r\n } \r\n else jg = false;\r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n getDistance2(x1, y1, x2, y2,num) {\r\n var jg = false;\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 160){\r\n if(num == true){\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxDistance) jg = true;\r\n else jg = false;\r\n }\r\n else{\r\n jg = true;\r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n\r\n createBall(number,color,speed,repeat){\r\n let ball = null;\r\n if(color == 0)ball = cc.instantiate(this.qiu1);\r\n else if(color == 1)ball = cc.instantiate(this.qiu2);\r\n else if(color == 2)ball = cc.instantiate(this.qiu3);\r\n ball.parent = this.node.getChildByName(\"Sun\");\r\n ball.zIndex = this.now_Array.length - number;\r\n ball.setPosition(this.ball.x,this.ball.y);\r\n ball.getComponent(\"Sun\").init(number,color,speed,repeat);\r\n this.ball_Array.push(ball);\r\n }\r\n\r\n destroyLine() {\r\n for(let i =0; i< this.node.getChildByName(\"Line\").children.length;i++){\r\n if(this.node.getChildByName(\"Line\").children[i]){\r\n this.node.getChildByName(\"Line\").children[i].removeFromParent();\r\n this.node.getChildByName(\"Line\").children[i] = null;\r\n }\r\n }\r\n this.node.getChildByName(\"Line\").removeAllChildren();\r\n }\r\n\r\n createLine(start,end,time){\r\n let line = cc.instantiate(this.linePrefab);\r\n line.parent = this.node.getChildByName(\"Line\");\r\n line.setPosition(start.x,start.y);\r\n \r\n const dx = end.x - start.x;\r\n const dy = end.y - start.y;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n line.height = distance;\r\n line.getComponent(cc.Sprite).fillRange = 0;\r\n line.angle = -this.calculateAngle(start.x,start.y,end.x,end.y);\r\n cc.tween(line.getComponent(cc.Sprite))\r\n .to(time,{fillRange:1})\r\n .start();\r\n }\r\n\r\n calculateAngle(x1, y1, x2, y2) {\r\n var angle = Math.atan2(y2-y1,x2-x1)*180 / Math.PI - 90;\r\n return -angle;\r\n }\r\n\r\n calculateDistance(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 800) distance = 800;\r\n const time = distance/800 * 0.6;\r\n return time;\r\n }\r\n\r\n calculateDistance2(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 1200) distance = 1200;\r\n const time = distance/1200 * 1;\r\n return time;\r\n }\r\n\r\n calculateDistance3(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 1200) distance = 1200;\r\n const time = distance/1200 * 1.5;\r\n return time;\r\n }\r\n\r\n //背景移动\r\n bgMove(type){\r\n let random = Math.random()*300 + 300;\r\n let posX = Math.random()*600 - 300;\r\n \r\n let y1 = this.bg1.y - random*type;\r\n // let y2 = this.bg2.y - random*type;\r\n let time1 = 0.7*(random/400);\r\n\r\n cc.tween(this.ball)\r\n .to(0.3,{scale:1.3})\r\n .to(time1,{x:posX})\r\n .start();\r\n\r\n cc.tween(this.bg1)\r\n .delay(0.3)\r\n .to(time1,{y:y1})\r\n .start();\r\n\r\n // cc.tween(this.bg2)\r\n // .delay(0.3)\r\n // .to(time1,{y:y2})\r\n // .start();\r\n\r\n setTimeout(() => {\r\n // if(this.over == false && GameData._instance.GM_INFO.custom == 0){\r\n // this.startGame();\r\n // }\r\n if(this.over == false){\r\n this.startGame();\r\n }\r\n \r\n }, time1*1500);\r\n }\r\n //时间格式转换\r\n getTimeMargin(second:number) {\r\n let total = 0;\r\n total = second;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n return m + ':' + miao\r\n }\r\n\r\n \r\n //如果是倒计时 调用此方法\r\n updateCountDownTime () {\r\n if (this.countTime > 0 && this.pause == false) {\r\n this.countTime -= 1;\r\n this.time.string = this.getTimeMargin(this.countTime);\r\n if(this.countTime < 5){\r\n cc.tween(this.time.node)\r\n .to(0.25,{scale:1.5,color:cc.color(255,0,0)})\r\n .to(0.25,{scale:1,color:cc.color(255,255,255)})\r\n .start()\r\n let over = this.node.getChildByName(\"Over\");\r\n cc.tween(over)\r\n .to(0.2,{opacity:255})\r\n .delay(0.1)\r\n .to(0.2,{opacity:0})\r\n .start();\r\n }\r\n if(this.countTime <= 0){\r\n this.begin = false;\r\n this.over = true;\r\n this.unschedule(this.updateCountDownTime);\r\n this.setLoss();\r\n var time = 0;\r\n \r\n // console.log(GameData._instance.GM_INFO.mean_Time,this.clickCount);\r\n if(this.clickCount > 0) time = parseInt(GameData._instance.GM_INFO.mean_Time/this.clickCount + \"\");\r\n GameData._instance.GM_INFO.mean_Time = parseInt(time/100 + \"\");\r\n GameData._instance.GM_INFO.mean_Time = GameData._instance.GM_INFO.mean_Time /10;\r\n // console.log( GameData._instance.GM_INFO.mean_Time,time);\r\n // debugger;\r\n if(time > 10000) time = (Math.random()*10+5)*100;\r\n this.setRank(time);\r\n }\r\n }\r\n }\r\n\r\n setData(){\r\n let data = GameData._instance.GAME_DATA;\r\n let matchId = this.getMatchId();\r\n console.log(matchId);\r\n let postData = {\r\n \"matchId\":matchId,\r\n \"data\": data\r\n };\r\n console.log(\"上传数据:\")\r\n HttpUtil.uploadUserLogData(postData,function(){})\r\n }\r\n\r\n getMatchId (){\r\n let matchId = cc.sys.localStorage.getItem(\"matchId\");\r\n\r\n if(matchId == \"undifend\" || matchId==null){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n let char = parseInt(matchId[10]);\r\n if(this.round == 1){\r\n char += 1;\r\n }\r\n matchId = matchId.slice(0, 10) + char + \"\";\r\n GameData._instance.GM_INFO.matchId = matchId;\r\n cc.sys.localStorage.setItem(\"matchId\",matchId);\r\n }\r\n }\r\n\r\n return matchId;\r\n }\r\n\r\n containsNanana(str) {\r\n return /na/i.test(str);\r\n }\r\n\r\n setMatchId (){\r\n // 定义包含可用字符的字符集\r\n const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n // 创建一个数组以保存随机字符\r\n const uuidArray = [];\r\n \r\n // 循环10次 生成10位的UUID\r\n for (let i = 0; i < 10; i++) {\r\n // 生成随机索引,范围是字符集的长度\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n // 从字符集中获取随机字符\r\n const randomChar = characters.charAt(randomIndex);\r\n // 将字符添加到数组中\r\n uuidArray.push(randomChar);\r\n }\r\n \r\n let data = uuidArray.join('') + 1 + \"\";\r\n cc.sys.localStorage.setItem(\"matchNumber\",1);\r\n cc.sys.localStorage.setItem(\"matchId\",data);\r\n GameData._instance.GM_INFO.matchId = data;\r\n return data;\r\n }\r\n\r\n setRank(time){\r\n let postData = {\r\n \"type\":1,\r\n \"reactionTime\": time,\r\n \"totalSunCount\": GameData._instance.GM_INFO.total,\r\n \"success\": GameData._instance.GM_INFO.success\r\n \r\n };\r\n // console.log(postData);\r\n HttpUtil.rankData(1,function(){},postData);\r\n this.node.getChildByName(\"GameOver\").active = true;\r\n this.node.getChildByName(\"GameOver\").opacity = 0;\r\n cc.tween(this.node.getChildByName(\"GameOver\"))\r\n .to(0.4,{opacity:255})\r\n .delay(2)\r\n .to(0.4,{opacity:50})\r\n .call(() =>{\r\n cc.director.loadScene(\"OverScene\");\r\n })\r\n .start()\r\n \r\n }\r\n\r\n outPut(){\r\n\r\n let data = GameData._instance.CLICK_DATA;\r\n GameData._instance.GAME_DATA = [];\r\n\r\n GameData._instance.GAME_DATA.push(GameData._instance.CLICK_DATA);\r\n GameData._instance.CLICK_init();\r\n }\r\n\r\n showNumber(){\r\n if(this.show == false) this.show = true;\r\n else if(this.show == true) this.show = false;\r\n for(let i=0; i= 99) { if (this.rankNumber >= 99) { time = (Math.random() * 49 + 1) / 100; + var matchId = cc.sys.localStorage.getItem("matchNumber"); + if (matchId == null || matchId == undefined) { + time = 0; + } } } + else { + } setTimeout(function () { if (_this.tween) _this.tween.stop(); + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; }, time * 2000); }; Helloworld.prototype.getRank = function () { @@ -148,6 +167,8 @@ var Helloworld = /** @class */ (function (_super) { }; Helloworld.prototype.setPic2 = function (pic) { var _this = this; + this.Player.active = true; + this.Player.opacity = 0; this.Player.getChildByName("mask").getChildByName("icon").active = false; this.Player.getChildByName("mask").getChildByName("phone").active = false; var url = pic; @@ -166,6 +187,8 @@ var Helloworld = /** @class */ (function (_super) { var self = this; cc.assetManager.loadRemote(url, { ext: '.jpg' }, function (err, texture) { if (texture) { + _this.Player.opacity = 255; + _this.Player.getChildByName("mask").getChildByName("icon").active = false; _this.Player.getChildByName("mask").getChildByName("phone").active = true; _this.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) .spriteFrame = new cc.SpriteFrame(texture); @@ -175,7 +198,9 @@ var Helloworld = /** @class */ (function (_super) { // console.log("设置头像成功",err); } else { + _this.Player.opacity = 255; // console.log("设置头像失败",url); + _this.Player.getChildByName("mask").getChildByName("icon").active = true; console.log(err, texture); setTimeout(function () { _this.playerAction(); diff --git a/library/imports/e1/e1b90feb-a217-4493-849d-9a611900d683.js.map b/library/imports/e1/e1b90feb-a217-4493-849d-9a611900d683.js.map index 3647798..6b38e86 100644 --- a/library/imports/e1/e1b90feb-a217-4493-849d-9a611900d683.js.map +++ b/library/imports/e1/e1b90feb-a217-4493-849d-9a611900d683.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\Helloworld.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import GameData from \"./GameData\";\r\nimport List from \"./ListView/List\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\n// import { apiSign } from \"./crypto/sign\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class Helloworld extends cc.Component {\r\n\r\n @property(cc.Node)\r\n Player: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n selfNode: cc.Node = null;\r\n\r\n @property(cc.Sprite)\r\n phone: cc.Sprite = null;\r\n\r\n private rankList: List; //排行榜\r\n tween: cc.Tween;\r\n listData: any;\r\n selfData: any;\r\n rankNumber: number;\r\n rankTotal: number;\r\n\r\n onLoad() {\r\n this.rankList = cc.find(\"ScrollView\", this.node).getComponent(List);\r\n this.listData = [];\r\n this.selfData = null;\r\n this.rankNumber = 100;\r\n this.rankTotal= 100;\r\n this.selfNode.opacity = 0;\r\n }\r\n \r\n start() {\r\n this.getRank();\r\n }\r\n\r\n getRankData(data){\r\n if(data){\r\n console.log(data);\r\n this.listData = data.data.list;\r\n this.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n for(let i=0;i<=this.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:this.listData[i].nickName, total:this.listData[i].totalSunCount, pic:this.listData[i].pic});\r\n if(GameData._instance.GM_INFO.userId == this.listData[i].userId){\r\n self = true;\r\n this.rankNumber = i;\r\n this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (this.listData.length-1) && self == false){\r\n this.rankNumber = i;\r\n this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n }\r\n this.rankList.setData(rankData);\r\n if(this.selfData.nickName.length > 6){\r\n this.selfData.nickName= this.selfData.nickName.substring(0,6) + \"...\"\r\n }\r\n this.selfNode.getChildByName(\"nameLab\").getComponent(cc.Label).string = this.selfData.nickName;\r\n this.selfNode.getChildByName(\"totalLab\").getComponent(cc.Label).string = this.selfData.totalSunCount;\r\n this.setPic(this.selfData.pic);\r\n this.setPic2(this.selfData.pic);\r\n if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"1\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n }\r\n else if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"2\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n }\r\n else if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"3\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n }\r\n else{\r\n // this.selfNode.getChildByName(\"four\").active = true;\r\n }\r\n this.selfNode.opacity = 255;\r\n\r\n }\r\n }\r\n backClick(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n\r\n playerAction(){\r\n //-254 377 210 453\r\n let time = 1;\r\n this.tween = cc.tween(this.Player)\r\n .to(2,{position:cc.v3(210,453,0)})\r\n .start();\r\n time = (this.listData.length - this.rankNumber)/this.listData.length;\r\n if(this.listData.length >= 99){\r\n if(this.rankNumber >= 99){\r\n time = (Math.random()*49+1)/100\r\n }\r\n }\r\n\r\n\r\n setTimeout(() => {\r\n if(this.tween)this.tween.stop();\r\n }, time*2000);\r\n\r\n }\r\n\r\n getRank(){\r\n let postData = {\r\n \"page\":1,\r\n \"pageSize\":100\r\n }; \r\n HttpUtil.rankData(2,this.getRankData.bind(this),postData);\r\n }\r\n\r\n public setPic(pic){\r\n this.phone.node.parent.getChildByName(\"icon\").active = false;\r\n this.phone.node.active = false;\r\n let url = pic;\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n this.phone.node.parent.getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n var self = this;\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n this.phone.node.active = true;\r\n self.phone.spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n console.log(err,texture)\r\n }\r\n })\r\n }\r\n\r\n public setPic2(pic){\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = false;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = false;\r\n let url = pic;\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n var self = this;\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = true;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").getComponent(cc.Sprite)\r\n .spriteFrame = new cc.SpriteFrame(texture);\r\n setTimeout(() => {\r\n this.playerAction();\r\n }, 500);\r\n // console.log(\"设置头像成功\",err);\r\n }\r\n else{\r\n // console.log(\"设置头像失败\",url);\r\n console.log(err,texture)\r\n setTimeout(() => {\r\n this.playerAction();\r\n }, 500);\r\n }\r\n })\r\n }\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\Helloworld.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import GameData from \"./GameData\";\r\nimport List from \"./ListView/List\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\n// import { apiSign } from \"./crypto/sign\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class Helloworld extends cc.Component {\r\n\r\n @property(cc.Node)\r\n Player: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n selfNode: cc.Node = null;\r\n\r\n @property(cc.Sprite)\r\n phone: cc.Sprite = null;\r\n\r\n private rankList: List; //排行榜\r\n tween: cc.Tween;\r\n listData: any;\r\n selfData: any;\r\n rankNumber: number;\r\n rankTotal: number;\r\n\r\n onLoad() {\r\n this.Player.getChildByName(\"rank\").active = false;\r\n this.rankList = cc.find(\"ScrollView\", this.node).getComponent(List);\r\n this.listData = [];\r\n this.selfData = null;\r\n this.rankNumber = 100;\r\n this.rankTotal= 100;\r\n this.selfNode.opacity = 0;\r\n }\r\n \r\n start() {\r\n this.Player.active = false;\r\n this.getRank();\r\n }\r\n\r\n getRankData(data){\r\n if(data){\r\n // console.log(data);\r\n this.listData = data.data.list;\r\n this.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n for(let i=0;i<=this.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:this.listData[i].nickName, total:this.listData[i].totalSunCount, pic:this.listData[i].pic});\r\n if(GameData._instance.GM_INFO.userId == this.listData[i].userId){\r\n self = true;\r\n this.rankNumber = i;\r\n this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (this.listData.length-1) && self == false){\r\n this.rankNumber = i;\r\n this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n }\r\n this.rankList.setData(rankData);\r\n if(this.selfData.nickName.length > 6){\r\n this.selfData.nickName= this.selfData.nickName.substring(0,6) + \"...\"\r\n }\r\n this.selfNode.getChildByName(\"nameLab\").getComponent(cc.Label).string = this.selfData.nickName;\r\n this.selfNode.getChildByName(\"totalLab\").getComponent(cc.Label).string = this.selfData.totalSunCount;\r\n this.setPic(this.selfData.pic);\r\n this.setPic2(this.selfData.pic);\r\n if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"1\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n }\r\n else if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"2\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n }\r\n else if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"3\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n }\r\n else{\r\n // this.selfNode.getChildByName(\"four\").active = true;\r\n }\r\n this.selfNode.opacity = 255;\r\n if(this.selfData.totalSunCount == 0) this.selfNode.opacity = 0;\r\n }\r\n }\r\n backClick(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n\r\n playerAction(){\r\n //-254 377 210 453\r\n this.Player.getChildByName(\"rank\").active = false;\r\n\r\n let time = 1;\r\n this.tween = cc.tween(this.Player)\r\n .to(2,{position:cc.v3(210,453,0)})\r\n .call(() =>{\r\n this.Player.getChildByName(\"rank\").active = true;\r\n this.Player.getChildByName(\"rank\").getChildByName(\"number\")\r\n .getComponent(cc.Label).string = parseInt(time*100 + \"\") + \"%\";\r\n })\r\n .start();\r\n time = (this.listData.length - this.rankNumber)/this.listData.length;\r\n if(this.listData.length >= 99){\r\n if(this.rankNumber >= 99){\r\n time = (Math.random()*49+1)/100\r\n var matchId = cc.sys.localStorage.getItem(\"matchNumber\");\r\n if(matchId == null || matchId == undefined){\r\n time = 0;\r\n }\r\n }\r\n }\r\n else{\r\n\r\n }\r\n\r\n \r\n\r\n setTimeout(() => {\r\n if(this.tween)this.tween.stop();\r\n this.Player.getChildByName(\"rank\").active = true;\r\n this.Player.getChildByName(\"rank\").getChildByName(\"number\")\r\n .getComponent(cc.Label).string = parseInt(time*100 + \"\") + \"%\";\r\n }, time*2000);\r\n\r\n }\r\n\r\n getRank(){\r\n let postData = {\r\n \"page\":1,\r\n \"pageSize\":100\r\n }; \r\n HttpUtil.rankData(2,this.getRankData.bind(this),postData);\r\n }\r\n\r\n public setPic(pic){\r\n this.phone.node.parent.getChildByName(\"icon\").active = false;\r\n this.phone.node.active = false;\r\n let url = pic;\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n this.phone.node.parent.getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n var self = this;\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n this.phone.node.active = true;\r\n self.phone.spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n console.log(err,texture)\r\n }\r\n })\r\n }\r\n\r\n public setPic2(pic){\r\n this.Player.active = true;\r\n this.Player.opacity = 0;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = false;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = false;\r\n let url = pic;\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n var self = this;\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n this.Player.opacity = 255;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = false;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = true;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").getComponent(cc.Sprite)\r\n .spriteFrame = new cc.SpriteFrame(texture);\r\n setTimeout(() => {\r\n this.playerAction();\r\n }, 500);\r\n // console.log(\"设置头像成功\",err);\r\n }\r\n else{\r\n this.Player.opacity = 255;\r\n // console.log(\"设置头像失败\",url);\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = true;\r\n console.log(err,texture)\r\n setTimeout(() => {\r\n this.playerAction();\r\n }, 500);\r\n }\r\n })\r\n }\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/library/uuid-to-mtime.json b/library/uuid-to-mtime.json index 13189a3..285e54c 100644 --- a/library/uuid-to-mtime.json +++ b/library/uuid-to-mtime.json @@ -1,22 +1,22 @@ { "2e3d6223-9889-4122-8121-c6d837f5367e": { - "asset": 1715325934039, - "meta": 1715326085243, + "asset": 1716867446237, + "meta": 1716868891161, "relativePath": "migration" }, "29f52784-2fca-467b-92e7-8fd9ef8c57b7": { - "asset": 1715325934079, - "meta": 1715326085243, + "asset": 1716867446299, + "meta": 1716868891162, "relativePath": "Scene" }, "4734c20c-0db8-4eb2-92ea-e692f4d70934": { - "asset": 1716452214949, - "meta": 1716452900217, + "asset": 1716867446329, + "meta": 1716868891162, "relativePath": "Script" }, "7b81d4e8-ec84-4716-968d-500ac1d78a54": { - "asset": 1715325934136, - "meta": 1715326085247, + "asset": 1716867446357, + "meta": 1716868891165, "relativePath": "Texture" }, "7a231473-d1df-4b05-8620-6376c36252c1": { @@ -25,8 +25,8 @@ "relativePath": "migration\\use_v2.1-2.2.1_cc.Toggle_event.js" }, "5a7c7479-48b8-4ee6-a003-33adfd2cb965": { - "asset": 1715325934111, - "meta": 1715326085247, + "asset": 1716867446328, + "meta": 1716868891166, "relativePath": "Script\\ListView" }, "5aca560f-66b4-413d-95bd-73669c0bca6b": { @@ -35,8 +35,8 @@ "relativePath": "Script\\RankListItem.prefab" }, "2d2f792f-a40c-49bb-a189-ed176a246e49": { - "asset": 1716796974766, - "meta": 1716796974771, + "asset": 1717067787704, + "meta": 1717067787709, "relativePath": "Scene\\RankScene.fire" }, "a8027877-d8d6-4645-97a0-52d4a0123dba": { @@ -50,23 +50,23 @@ "relativePath": "Texture\\HelloWorld.png" }, "7c1d6faa-66b9-4423-aa04-8c38a15768cf": { - "asset": 1715325934038, - "meta": 1715326085241, + "asset": 1716867446233, + "meta": 1716868891157, "relativePath": "animation" }, "6ebfe2d9-539a-4853-8b16-fca5c89cf2ce": { - "asset": 1716457544350, - "meta": 1716522414195, + "asset": 1716867446245, + "meta": 1716868891162, "relativePath": "music" }, "bf3935ca-518a-42f4-84e4-ad96badfd1b4": { - "asset": 1715325934056, - "meta": 1715326085243, + "asset": 1716867446259, + "meta": 1716868891162, "relativePath": "prefab" }, "52e78fe3-9095-42ad-8e4d-f9bb12dc69ce": { - "asset": 1716543913052, - "meta": 1716547868164, + "asset": 1716867446289, + "meta": 1716868891162, "relativePath": "resources" }, "dd9d69fc-bc3c-4239-968e-9c6f4e54d9cf": { @@ -80,8 +80,8 @@ "relativePath": "prefab\\line.prefab" }, "3a232388-d8dc-4f79-a1ea-82f6385b7ce2": { - "asset": 1716549462550, - "meta": 1716549462555, + "asset": 1716891674004, + "meta": 1716891674007, "relativePath": "prefab\\qiu1.prefab" }, "5e515837-650e-4584-a089-e2a025e36c39": { @@ -124,19 +124,14 @@ "meta": 1715325499067, "relativePath": "Script\\Notification.ts" }, - "b5d92920-0919-4abb-9218-2a76863e0a1a": { - "asset": 1714279614000, - "meta": 1715325499076, - "relativePath": "Script\\Storage.js" - }, "f7f5d7e6-2a27-4e6d-988c-2edb817408aa": { "asset": 1714377434000, "meta": 1715325499104, "relativePath": "Script\\test.ts" }, "4bff6e01-b411-48f4-867a-5d841f9e400f": { - "asset": 1716372438665, - "meta": 1716372438699, + "asset": 1716867446333, + "meta": 1716868891166, "relativePath": "Script\\tool" }, "61aff0f9-48ef-48a6-8d1f-1a621e4c54d9": { @@ -145,8 +140,8 @@ "relativePath": "Script\\tool\\Shake.js" }, "afa9e39a-94ca-477f-8a2a-25082d9092c3": { - "asset": 1716369705622, - "meta": 1716370289018, + "asset": 1716867446352, + "meta": 1716868891162, "relativePath": "Shader" }, "70ca6f7c-88f0-44f1-9ab3-3b1c0d042995": { @@ -215,13 +210,13 @@ "relativePath": "Shader\\Effect_fluid2.png" }, "2880dc26-5b38-48bd-baba-daaec97499cb": { - "asset": 1716777154881, - "meta": 1716781977066, + "asset": 1716867446274, + "meta": 1716868891162, "relativePath": "res" }, "e8009432-4774-4831-a537-511de4498eee": { - "asset": 1715915712854, - "meta": 1715929964709, + "asset": 1716867446324, + "meta": 1716868891165, "relativePath": "Script\\crypto" }, "e64e1a97-c93f-4257-ab34-80341d8ff79d": { @@ -229,11 +224,6 @@ "meta": 1715425306171, "relativePath": "Script\\crypto\\crypto-js.min.js" }, - "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d": { - "asset": 1716532366500, - "meta": 1716532366525, - "relativePath": "Scene\\LoadScene.fire" - }, "d54211e0-2d28-4528-88e3-e5fd7c9b59a2": { "asset": 1716189341583, "meta": 1716189350517, @@ -266,502 +256,502 @@ }, "9836134e-b892-4283-b6b2-78b5acf3ed45": { "asset": 1714966328642, - "meta": 1716808051612, + "meta": 1717062584341, "relativePath": "effects" }, "f6e6dd15-71d1-4ffe-ace7-24fd39942c05": { "asset": 1714966328752, - "meta": 1716808051618, + "meta": 1717062584347, "relativePath": "obsolete" }, "f743d2b6-b7ea-4c14-a55b-547ed4d0a045": { "asset": 1714966328752, - "meta": 1716808051618, + "meta": 1717062584347, "relativePath": "particle" }, "ae6c6c98-11e4-452f-8758-75f5c6a56e83": { "asset": 1714966328831, - "meta": 1716808051619, + "meta": 1717062584347, "relativePath": "prefab" }, "897ef7a1-4860-4f64-968d-f5924b18668a": { "asset": 1714966328752, - "meta": 1716808051962, + "meta": 1717062584663, "relativePath": "prefab\\2d-camera.prefab" }, "70d7cdb0-04cd-41bb-9480-c06a4785f386": { "asset": 1714966328768, - "meta": 1716808051967, + "meta": 1717062584665, "relativePath": "prefab\\3d-camera.prefab" }, "a3ee0214-b432-4865-9666-4a3211814282": { "asset": 1714966328800, - "meta": 1716808051966, + "meta": 1717062584666, "relativePath": "prefab\\light" }, "972b9a4d-47ee-4c74-b5c3-61d8a69bc29f": { "asset": 1714966328768, - "meta": 1716808051969, + "meta": 1717062584671, "relativePath": "prefab\\button.prefab" }, "ed88f13d-fcad-4848-aa35-65a2cb973584": { "asset": 1714966328768, - "meta": 1716808051971, + "meta": 1717062584669, "relativePath": "prefab\\3d-stage.prefab" }, "70bbeb73-6dc2-4ee4-8faf-76b3a0e34ec4": { "asset": 1714966328768, - "meta": 1716808051965, + "meta": 1717062584667, "relativePath": "prefab\\3d-particle.prefab" }, "2c937608-2562-40ea-b264-7395df6f0cea": { "asset": 1714966328768, - "meta": 1716808051973, + "meta": 1717062584672, "relativePath": "prefab\\canvas.prefab" }, "61aeb05b-3b32-452b-8eed-2b76deeed554": { "asset": 1714966328783, - "meta": 1716808051976, + "meta": 1717062584673, "relativePath": "prefab\\editbox.prefab" }, "27756ebb-3d33-44b0-9b96-e858fadd4dd4": { "asset": 1714966328783, - "meta": 1716808051983, + "meta": 1717062584677, "relativePath": "prefab\\label.prefab" }, "785a442c-3ceb-45be-a46e-7317f625f3b9": { "asset": 1714966328783, - "meta": 1716808051986, + "meta": 1717062584679, "relativePath": "prefab\\layout.prefab" }, "cd33edea-55f5-46c2-958d-357a01384a36": { "asset": 1714966328800, - "meta": 1716808051989, + "meta": 1717062584684, "relativePath": "prefab\\particlesystem.prefab" }, "5965ffac-69da-4b55-bcde-9225d0613c28": { "asset": 1714966328800, - "meta": 1716808051993, + "meta": 1717062584687, "relativePath": "prefab\\progressBar.prefab" }, "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be": { "asset": 1714966328800, - "meta": 1716808051987, + "meta": 1717062584681, "relativePath": "prefab\\pageview.prefab" }, "4a37dd57-78cd-4cec-aad4-f11a73d12b63": { "asset": 1714966328800, - "meta": 1716808051991, + "meta": 1717062584685, "relativePath": "prefab\\richtext.prefab" }, "0004d1cf-a0ad-47d8-ab17-34d3db9d35a3": { "asset": 1714966328800, - "meta": 1716808051996, + "meta": 1717062584690, "relativePath": "prefab\\slider.prefab" }, "32044bd2-481f-4cf1-a656-e2b2fb1594eb": { "asset": 1714966328800, - "meta": 1716808051994, + "meta": 1717062584688, "relativePath": "prefab\\scrollview.prefab" }, "96083d03-c332-4a3f-9386-d03e2d19e8ee": { "asset": 1714966328815, - "meta": 1716808052005, + "meta": 1717062584698, "relativePath": "prefab\\sprite.prefab" }, "d8afc78c-4eac-4a9f-83dd-67bc70344d33": { "asset": 1714966328862, - "meta": 1716808051620, + "meta": 1717062584348, "relativePath": "resources" }, "294c1663-4adf-4a1e-a795-53808011a38a": { "asset": 1714966328862, - "meta": 1716808052015, + "meta": 1717062584711, "relativePath": "resources\\effects" }, "bbee2217-c261-49bd-a8ce-708d6bcc3500": { "asset": 1714966328893, - "meta": 1716808052016, + "meta": 1717062584714, "relativePath": "resources\\materials" }, "7de03a80-4457-438d-95a7-3e7cdffd6086": { "asset": 1714966328815, - "meta": 1716808052025, + "meta": 1717062584718, "relativePath": "prefab\\tiledmap.prefab" }, "30682f87-9f0d-4f17-8a44-72863791461b": { "asset": 1714966328831, - "meta": 1716808052045, + "meta": 1717062584736, "relativePath": "resources\\effects\\builtin-2d-graphics.effect" }, "1f55e3be-b89b-4b79-88de-47fd31018044": { "asset": 1714966328815, - "meta": 1716808052023, + "meta": 1717062584715, "relativePath": "prefab\\sprite_splash.prefab" }, "144c3297-af63-49e8-b8ef-1cfa29b3be28": { "asset": 1714966328831, - "meta": 1716808052054, + "meta": 1717062584743, "relativePath": "resources\\effects\\builtin-2d-gray-sprite.effect" }, "0d784963-d024-4ea6-a7db-03be0ad63010": { "asset": 1714966328815, - "meta": 1716808052032, + "meta": 1717062584721, "relativePath": "prefab\\toggle.prefab" }, "f18742d7-56d2-4eb5-ae49-2d9d710b37c8": { "asset": 1714966328831, - "meta": 1716808052064, + "meta": 1717062584755, "relativePath": "resources\\effects\\builtin-2d-label.effect" }, "0e42ba95-1fa1-46aa-b2cf-143cd1bcee2c": { "asset": 1714966328815, - "meta": 1716808052027, + "meta": 1717062584719, "relativePath": "prefab\\tiledtile.prefab" }, "0e93aeaa-0b53-4e40-b8e0-6268b4e07bd7": { "asset": 1714966328831, - "meta": 1716808052072, + "meta": 1717062584763, "relativePath": "resources\\effects\\builtin-2d-spine.effect" }, "2874f8dd-416c-4440-81b7-555975426e93": { "asset": 1714966328846, - "meta": 1716808052081, + "meta": 1717062584769, "relativePath": "resources\\effects\\builtin-2d-sprite.effect" }, "829a282c-b049-4019-bd38-5ace8d8a6417": { "asset": 1714966328846, - "meta": 1716808052125, + "meta": 1717062584815, "relativePath": "resources\\effects\\builtin-3d-particle.effect" }, "2a7c0036-e0b3-4fe1-8998-89a54b8a2bec": { "asset": 1714966328846, - "meta": 1716808052143, + "meta": 1717062584829, "relativePath": "resources\\effects\\builtin-3d-trail.effect" }, "c0040c95-c57f-49cd-9cbc-12316b73d0d4": { "asset": 1714966328846, - "meta": 1716808052149, + "meta": 1717062584943, "relativePath": "resources\\effects\\builtin-clear-stencil.effect" }, "6d91e591-4ce0-465c-809f-610ec95019c6": { "asset": 1714966328862, - "meta": 1716808052160, + "meta": 1717062584956, "relativePath": "resources\\effects\\builtin-unlit.effect" }, "bf0a434c-84dd-4a8e-a08a-7a36f180cc75": { "asset": 1714966328815, - "meta": 1716808052028, + "meta": 1717062584723, "relativePath": "prefab\\toggleContainer.prefab" }, "232d2782-c4bd-4bb4-9e01-909f03d6d3b9": { "asset": 1714966328815, - "meta": 1716808052033, + "meta": 1717062584725, "relativePath": "prefab\\videoplayer.prefab" }, "d1b8be49-b0a0-435c-83b7-552bed4bbe35": { "asset": 1714966328815, - "meta": 1716808052030, + "meta": 1717062584724, "relativePath": "prefab\\toggleGroup.prefab" }, "8c5001fd-07ee-4a4b-a8a0-63e15195e94d": { "asset": 1714966328831, - "meta": 1716808052129, + "meta": 1717062584936, "relativePath": "prefab\\webview.prefab" }, "ddb99b39-7004-47cd-9705-751905c43c46": { "asset": 1714966328800, - "meta": 1716808052180, + "meta": 1717062584979, "relativePath": "prefab\\light\\directional.prefab" }, "0cf30284-9073-46bc-9eba-e62b69dbbff3": { "asset": 1714966328800, - "meta": 1716808052177, + "meta": 1717062584971, "relativePath": "prefab\\light\\point.prefab" }, "61906da3-7003-4bda-9abc-5769c76faee4": { "asset": 1714966328783, - "meta": 1716808052179, + "meta": 1717062584968, "relativePath": "prefab\\light\\ambient.prefab" }, "f5331fd2-bf42-4ee3-a3fd-3e1657600eff": { "asset": 1714966328800, - "meta": 1716808052178, + "meta": 1717062584977, "relativePath": "prefab\\light\\spot.prefab" }, "a153945d-2511-4c14-be7b-05d242f47d57": { "asset": 1714966328862, - "meta": 1716808052252, + "meta": 1717062585062, "relativePath": "resources\\materials\\builtin-2d-graphics.mtl" }, "6f801092-0c37-4f30-89ef-c8d960825b36": { "asset": 1714966328862, - "meta": 1716808052250, + "meta": 1717062585060, "relativePath": "resources\\materials\\builtin-2d-base.mtl" }, "3a7bb79f-32fd-422e-ada2-96f518fed422": { "asset": 1714966328862, - "meta": 1716808052253, + "meta": 1717062585064, "relativePath": "resources\\materials\\builtin-2d-gray-sprite.mtl" }, "432fa09c-cf03-4cff-a186-982604408a07": { "asset": 1714966328878, - "meta": 1716808052260, + "meta": 1717062585065, "relativePath": "resources\\materials\\builtin-3d-particle.mtl" }, "7afd064b-113f-480e-b793-8817d19f63c3": { "asset": 1714966328878, - "meta": 1716808052253, + "meta": 1717062585062, "relativePath": "resources\\materials\\builtin-2d-spine.mtl" }, "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432": { "asset": 1714966328878, - "meta": 1716808052251, + "meta": 1717062585063, "relativePath": "resources\\materials\\builtin-2d-sprite.mtl" }, "cf7e0bb8-a81c-44a9-ad79-d28d43991032": { "asset": 1714966328878, - "meta": 1716808052261, + "meta": 1717062585067, "relativePath": "resources\\materials\\builtin-clear-stencil.mtl" }, "e02d87d4-e599-4d16-8001-e14891ac6506": { "asset": 1714966328878, - "meta": 1716808052251, + "meta": 1717062585061, "relativePath": "resources\\materials\\builtin-2d-label.mtl" }, "466d4f9b-e5f4-4ea8-85d5-3c6e9a65658a": { "asset": 1714966328878, - "meta": 1716808052260, + "meta": 1717062585066, "relativePath": "resources\\materials\\builtin-3d-trail.mtl" }, "d0a82d39-bede-46c4-b698-c81ff0dedfff": { "asset": 1714966328752, - "meta": 1716808052036, + "meta": 1717062584729, "relativePath": "particle\\atom.png" }, "2a296057-247c-4a1c-bbeb-0548b6c98650": { "asset": 1714966328893, - "meta": 1716808052262, + "meta": 1717062585065, "relativePath": "resources\\materials\\builtin-unlit.mtl" }, "8a96b965-2dc0-4e03-aa90-3b79cb93b5b4": { "asset": 1714966328752, - "meta": 1716808052021, + "meta": 1717062584728, "relativePath": "obsolete\\atom.png" }, "b8223619-7e38-47c4-841f-9160c232495a": { "asset": 1714966328752, - "meta": 1716808052276, + "meta": 1717062585090, "relativePath": "obsolete\\atom.plist" }, "b2687ac4-099e-403c-a192-ff477686f4f5": { "asset": 1714966328752, - "meta": 1716808052277, + "meta": 1717062585092, "relativePath": "particle\\atom.plist" }, "430eccbf-bf2c-4e6e-8c0c-884bbb487f32": { "asset": 1714966328642, - "meta": 1716808051810, + "meta": 1717062584516, "relativePath": "effects\\__builtin-editor-gizmo-line.effect" }, "6c5cf6e1-b044-4eac-9431-835644d57381": { "asset": 1714966328642, - "meta": 1716808051817, + "meta": 1717062584523, "relativePath": "effects\\__builtin-editor-gizmo-unlit.effect" }, "115286d1-2e10-49ee-aab4-341583f607e8": { "asset": 1714966328642, - "meta": 1716808051842, + "meta": 1717062584547, "relativePath": "effects\\__builtin-editor-gizmo.effect" }, "abc2cb62-7852-4525-a90d-d474487b88f2": { "asset": 1714966328642, - "meta": 1716808051744, + "meta": 1717062584454, "relativePath": "effects\\builtin-phong.effect" }, "e2f00085-c597-422d-9759-52c360279106": { "asset": 1714966328642, - "meta": 1716808051795, + "meta": 1717062584505, "relativePath": "effects\\builtin-toon.effect" }, "f8e6b000-5643-4b86-9080-aa680ce1f599": { "asset": 1714966328706, - "meta": 1716808051613, + "meta": 1717062584343, "relativePath": "image" }, "5c3eedba-6c41-4c0c-9ba7-d91f813cbd1c": { "asset": 1714966328721, - "meta": 1716808051614, + "meta": 1717062584344, "relativePath": "materials" }, "fc09f9bd-2cce-4605-b630-8145ef809ed6": { "asset": 1714966328721, - "meta": 1716808051616, + "meta": 1717062584344, "relativePath": "misc" }, "99170b0b-d210-46f1-b213-7d9e3f23098a": { "asset": 1714966328673, - "meta": 1716808051951, + "meta": 1717062584610, "relativePath": "image\\default_progressbar_bg.png" }, "cfef78f1-c8df-49b7-8ed0-4c953ace2621": { "asset": 1714966328673, - "meta": 1716808051946, + "meta": 1717062584598, "relativePath": "image\\default_progressbar.png" }, "db019bf7-f71c-4111-98cf-918ea180cb48": { "asset": 1714966328737, - "meta": 1716808051617, + "meta": 1717062584346, "relativePath": "model" }, "e39e96e6-6f6e-413f-bcf1-ac7679bb648a": { "asset": 1714966328737, - "meta": 1716808051908, + "meta": 1717062584615, "relativePath": "model\\prefab" }, "b43ff3c2-02bb-4874-81f7-f2dea6970f18": { "asset": 1714966328658, - "meta": 1716808051905, + "meta": 1717062584644, "relativePath": "image\\default_btn_pressed.png" }, "edd215b9-2796-4a05-aaf5-81f96c9281ce": { "asset": 1714966328658, - "meta": 1716808051893, + "meta": 1717062584614, "relativePath": "image\\default_editbox_bg.png" }, "617323dd-11f4-4dd3-8eec-0caf6b3b45b9": { "asset": 1714966328689, - "meta": 1716808051949, + "meta": 1717062584653, "relativePath": "image\\default_scrollbar_vertical_bg.png" }, "6e056173-d285-473c-b206-40a7fff5386e": { "asset": 1714966328689, - "meta": 1716808051956, + "meta": 1717062584656, "relativePath": "image\\default_sprite.png" }, "4bab67cb-18e6-4099-b840-355f0473f890": { "asset": 1714966328689, - "meta": 1716808051944, + "meta": 1717062584648, "relativePath": "image\\default_scrollbar_bg.png" }, "e851e89b-faa2-4484-bea6-5c01dd9f06e2": { "asset": 1714966328658, - "meta": 1716808051942, + "meta": 1717062584612, "relativePath": "image\\default_btn_normal.png" }, "c4480a0a-6ac5-443f-8b40-361a14257fc8": { "asset": 1714966328706, - "meta": 1716808052227, + "meta": 1717062585041, "relativePath": "materials\\builtin-phong.mtl" }, "a87cc147-01b2-43f8-8e42-a7ca90b0c757": { "asset": 1714966328721, - "meta": 1716808052166, + "meta": 1717062584945, "relativePath": "model\\prefab\\box.prefab" }, "d81ec8ad-247c-4e62-aa3c-d35c4193c7af": { "asset": 1714966328673, - "meta": 1716808051953, + "meta": 1717062584600, "relativePath": "image\\default_panel.png" }, "b5fc2cf2-7942-483d-be1f-bbeadc4714ad": { "asset": 1714966328737, - "meta": 1716808052168, + "meta": 1717062584959, "relativePath": "model\\prefab\\cone.prefab" }, "fe1417b6-fe6b-46a4-ae7c-9fd331f33a2a": { "asset": 1714966328737, - "meta": 1716808052165, + "meta": 1717062584957, "relativePath": "model\\prefab\\capsule.prefab" }, "71561142-4c83-4933-afca-cb7a17f67053": { "asset": 1714966328658, - "meta": 1716808051895, + "meta": 1717062584602, "relativePath": "image\\default_btn_disabled.png" }, "567dcd80-8bf4-4535-8a5a-313f1caf078a": { "asset": 1714966328673, - "meta": 1716808051899, + "meta": 1717062584646, "relativePath": "image\\default_radio_button_off.png" }, "3f376125-a699-40ca-ad05-04d662eaa1f2": { "asset": 1714966328737, - "meta": 1716808052174, + "meta": 1717062584969, "relativePath": "model\\prefab\\plane.prefab" }, "6c9ef10d-b479-420b-bfe6-39cdda6a8ae0": { "asset": 1714966328737, - "meta": 1716808052178, + "meta": 1717062584975, "relativePath": "model\\prefab\\quad.prefab" }, "600301aa-3357-4a10-b086-84f011fa32ba": { "asset": 1714966328642, - "meta": 1716808051947, + "meta": 1717062584605, "relativePath": "image\\default-particle.png" }, "2d9a4b85-b0ab-4c46-84c5-18f393ab2058": { "asset": 1714966328737, - "meta": 1716808052172, + "meta": 1717062584966, "relativePath": "model\\prefab\\sphere.prefab" }, "1c5e4038-953a-44c2-b620-0bbfc6170477": { "asset": 1714966328737, - "meta": 1716808052169, + "meta": 1717062584964, "relativePath": "model\\prefab\\cylinder.prefab" }, "9d60001f-b5f4-4726-a629-2659e3ded0b8": { "asset": 1714966328673, - "meta": 1716808051897, + "meta": 1717062584642, "relativePath": "image\\default_radio_button_on.png" }, "de510076-056b-484f-b94c-83bef217d0e1": { "asset": 1714966328737, - "meta": 1716808052175, + "meta": 1717062584971, "relativePath": "model\\prefab\\torus.prefab" }, "2be36297-9abb-4fee-8049-9ed5e271da8a": { "asset": 1714966328721, - "meta": 1716808052035, + "meta": 1717062584747, "relativePath": "misc\\default_video.mp4" }, "0291c134-b3da-4098-b7b5-e397edbe947f": { "asset": 1714966328689, - "meta": 1716808051907, + "meta": 1717062584649, "relativePath": "image\\default_scrollbar.png" }, "d6d3ca85-4681-47c1-b5dd-d036a9d39ea2": { "asset": 1714966328689, - "meta": 1716808051955, + "meta": 1717062584652, "relativePath": "image\\default_scrollbar_vertical.png" }, "0275e94c-56a7-410f-bd1a-fc7483f7d14a": { "asset": 1714966328705, - "meta": 1716808051903, + "meta": 1717062584650, "relativePath": "image\\default_sprite_splash.png" }, "73a0903d-d80e-4e3c-aa67-f999543c08f5": { "asset": 1714966328706, - "meta": 1716808052013, + "meta": 1717062584710, "relativePath": "image\\default_toggle_checkmark.png" }, "d29077ba-1627-4a72-9579-7b56a235340c": { "asset": 1714966328706, - "meta": 1716808052017, + "meta": 1717062584717, "relativePath": "image\\default_toggle_normal.png" }, "b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd": { "asset": 1714966328706, - "meta": 1716808052019, + "meta": 1717062584713, "relativePath": "image\\default_toggle_pressed.png" }, "c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f": { "asset": 1714966328706, - "meta": 1716808052046, + "meta": 1717062584727, "relativePath": "image\\default_toggle_disabled.png" }, "954fec8b-cd16-4bb9-a3b7-7719660e7558": { "asset": 1714966328737, - "meta": 1716808053901, + "meta": 1717062586635, "relativePath": "model\\primitives.fbx" }, "41ff2622-6092-4155-95fb-636454d00701": { @@ -869,39 +859,49 @@ "meta": 1716777228534, "relativePath": "res\\fit.png" }, - "805c69df-dfdf-4759-97ae-5a7341f424c7": { - "asset": 1716779172526, - "meta": 1716779189888, - "relativePath": "Script\\GameOver.ts" - }, - "454ad829-851a-40ea-8ab9-941e828357ca": { - "asset": 1716798183370, - "meta": 1716799671443, - "relativePath": "Script\\Load.ts" - }, - "b0432040-dbde-438c-839c-ba2b5d18a3b5": { - "asset": 1716808518296, - "meta": 1716809015343, - "relativePath": "Script\\GameManager.ts" - }, - "e1b90feb-a217-4493-849d-9a611900d683": { - "asset": 1716808460990, - "meta": 1716809015394, - "relativePath": "Script\\Helloworld.ts" - }, "48168cfc-cd06-437c-b39b-1d07a0bed786": { "asset": 1716861878659, "meta": 1716861900659, "relativePath": "res\\jiantou.png" }, + "805c69df-dfdf-4759-97ae-5a7341f424c7": { + "asset": 1716889782212, + "meta": 1716889783917, + "relativePath": "Script\\GameOver.ts" + }, "9830733c-b94b-4b60-a687-5cf98680259f": { - "asset": 1716862004747, - "meta": 1716862065023, + "asset": 1716953892989, + "meta": 1716953893911, "relativePath": "Script\\crypto\\serverAPI.ts" }, + "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d": { + "asset": 1717066356585, + "meta": 1717066356596, + "relativePath": "Scene\\LoadScene.fire" + }, "f2f0b239-3ec5-48fa-8d7c-c45e86f8a55a": { - "asset": 1716861951186, - "meta": 1716862065085, + "asset": 1717058398467, + "meta": 1717058398807, "relativePath": "Script\\GameData.ts" + }, + "b0432040-dbde-438c-839c-ba2b5d18a3b5": { + "asset": 1717058598513, + "meta": 1717058605737, + "relativePath": "Script\\GameManager.ts" + }, + "7cf8c313-e732-40d1-9538-1a9d0970bf2f": { + "asset": 1717063208498, + "meta": 1717063292263, + "relativePath": "Script\\Storage.ts" + }, + "e1b90feb-a217-4493-849d-9a611900d683": { + "asset": 1717066714803, + "meta": 1717066715703, + "relativePath": "Script\\Helloworld.ts" + }, + "454ad829-851a-40ea-8ab9-941e828357ca": { + "asset": 1717067786572, + "meta": 1717067786922, + "relativePath": "Script\\Load.ts" } } \ No newline at end of file diff --git a/local/layout.editor.json b/local/layout.editor.json index dde539a..ef37e0c 100644 --- a/local/layout.editor.json +++ b/local/layout.editor.json @@ -5,21 +5,21 @@ "main": true, "url": "app://editor/index.html", "windowType": "dockable", - "x": 0, - "y": 0, - "width": 1280, - "height": 672, + "x": -8, + "y": -8, + "width": 1296, + "height": 688, "layout": { "type": "dock-h", "children": [ { - "width": 204.64584350585938, - "height": 556.3333740234375, + "width": 207.28125, + "height": 571, "type": "dock-v", "children": [ { - "width": 204.64584350585938, - "height": 300.04168701171875, + "width": 207.28125, + "height": 308.13543701171875, "type": "panel", "active": 0, "children": [ @@ -27,8 +27,8 @@ ] }, { - "width": 204.64584350585938, - "height": 253.28125, + "width": 207.28125, + "height": 259.8645935058594, "type": "panel", "active": 0, "children": [ @@ -38,8 +38,8 @@ ] }, { - "width": 751.34375, - "height": 556.3333740234375, + "width": 759.3333740234375, + "height": 571, "type": "panel", "active": 0, "children": [ @@ -47,8 +47,8 @@ ] }, { - "width": 304, - "height": 556.3333740234375, + "width": 307.375, + "height": 571, "type": "panel", "active": 0, "children": [ @@ -65,7 +65,8 @@ "inspector", "cocos-services" ] - } + }, + " common-asset-worker-worker": {} }, "panels": { "builder": { diff --git a/local/local.json b/local/local.json index a9fad38..2ab7e95 100644 --- a/local/local.json +++ b/local/local.json @@ -1,16 +1,16 @@ { - "last-edit": "4b9c5a7e-c645-48a4-9aca-5df381ce4ef5", + "last-edit": "2d2f792f-a40c-49bb-a189-ed176a246e49", "recent-items": [ "40ba7e70-1826-4aa1-92f3-aa63ae39294b", "32254f37-ac95-4912-a787-b8e0429ba0f1", - "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d", - "3a232388-d8dc-4f79-a1ea-82f6385b7ce2", "5e515837-650e-4584-a089-e2a025e36c39", "13110e4f-3587-4e6b-8811-0ca16cac8149", "d1323772-4ab2-4527-bd20-501fe4fb9723", "4eaf518b-35ec-4262-928d-4d497c3f2830", "774829bb-123e-48b6-930e-6b3e02491506", - "2d2f792f-a40c-49bb-a189-ed176a246e49", - "4b9c5a7e-c645-48a4-9aca-5df381ce4ef5" + "4b9c5a7e-c645-48a4-9aca-5df381ce4ef5", + "3a232388-d8dc-4f79-a1ea-82f6385b7ce2", + "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d", + "2d2f792f-a40c-49bb-a189-ed176a246e49" ] } diff --git a/local/node-tree-state.json b/local/node-tree-state.json index 20a7c56..575d460 100644 --- a/local/node-tree-state.json +++ b/local/node-tree-state.json @@ -38,14 +38,11 @@ "0fcDfHHpRHXKM9MyyslQY8", "80UN5iBc9K9pd8hXCc1VAk", "9a3MBWS0tATp1bXC+684by", - "a2Zfykcl1GPqJhA7ixiKd3", - "e2e0crkOLxGrpMxpbC4iQg1", "bdbEH+735OxrggnQuRlqF2", "99Fe5tv8pMaYMcXAIOO6ZV", "85AQ3wR2VBJ7P/esG1IsjH", "bb+DPySjNLhZcxUUphVuRh", "235SMzDbhOq6ztcaxq2zgs", - "8fIUbpCjhI5r01JqiMBRub", "5athgBtiFNOJe+DCAIMam3", "d85qKPpT1EtqV0GDNB7tE3", "05zrhv4M5Oi545Yl6haU2p", @@ -69,7 +66,6 @@ "4ecJapFy5GW6jaFZfBauI3", "f1j8kdo7RHv6Rvh+3P8tTw", "22iCrJORVGCLYRM1Z1n0wp", - "fe7qLOC0RM9qPt+IfQpa5W", "99IKRDjA9IYKqv3gynm5Zm", "f9Cw01651C2Zl+trl7WVsP", "cfxr47kQ5LA6a7THlAhDRR", @@ -78,7 +74,6 @@ "8cvS2HAkBM05fjj60bD03B", "16gqVcPfxELJJJvzrWZur+", "7dABu6LfBPVrHU5tOjT7Yt", - "78pYT7vxBK7YbD2aVkC4Kw", "d7dz5M5UZGWb3XdTtMwKTr", "beVty643BMKbTRukfIU7HV", "1193kI5mxIVb/DB02RtHNQ", @@ -190,9 +185,10 @@ "78Sk802p9L/Ip+ZPEFbJnp", "cfD+6eekJE44Ilk2xG5ORu", "6bCpWS8ktAfIpBUoWywuvF", + "e2e0crkOLxGrpMxpbC4iQg1", "cf4fwLe4hJXLYT5vY7WfC9", - "8ak5WlHVBELqSzRzcpZa3P", - "10unPSfi1NUb30N1EjhieB", - "791LpnRkFNkqdfpCoJ3Pqk" + "a9Y/TP/QhAdq9i2KGsTC0d", + "a1BRwywGFMT6iJxK+nijOf", + "7aHA1K+7hE8YNbYjVirEih" ] } diff --git a/settings/project.json b/settings/project.json index 97c9254..c141d3e 100644 --- a/settings/project.json +++ b/settings/project.json @@ -1,5 +1,5 @@ { - "last-module-event-record-time": 1716346608366, + "last-module-event-record-time": 1716951696375, "group-list": [ "default" ], diff --git a/temp/BackupAssets/assets/Scene/RankScene.fire b/temp/BackupAssets/assets/Scene/RankScene.fire index c3cf816..8063587 100644 --- a/temp/BackupAssets/assets/Scene/RankScene.fire +++ b/temp/BackupAssets/assets/Scene/RankScene.fire @@ -84,22 +84,25 @@ "__id__": 69 }, { - "__id__": 77 + "__id__": 84 }, { - "__id__": 102 + "__id__": 86 + }, + { + "__id__": 109 } ], "_active": true, "_components": [ { - "__id__": 107 + "__id__": 114 }, { - "__id__": 108 + "__id__": 115 }, { - "__id__": 109 + "__id__": 116 } ], "_prefab": null, @@ -2821,12 +2824,15 @@ "_children": [ { "__id__": 70 + }, + { + "__id__": 77 } ], "_active": true, "_components": [ { - "__id__": 76 + "__id__": 83 } ], "_prefab": null, @@ -2879,7 +2885,7 @@ }, { "__type__": "cc.Node", - "_name": "mask", + "_name": "rank", "_objFlags": 0, "_parent": { "__id__": 69 @@ -2890,12 +2896,365 @@ }, { "__id__": 73 + }, + { + "__id__": 75 + } + ], + "_active": false, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "7aHA1K+7hE8YNbYjVirEih" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 72 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 72, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -42.835, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "96xrp90GJO8rwMqGxxlacV" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 71 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "超过了", + "_N$string": "超过了", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "daHyJzw/xLho0dlbkuPHvm" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 74 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 48, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 74.991, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "66pdXEqLtLUaXZg+PhM/Z/" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 73 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "的人", + "_N$string": "的人", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "5bSRJmjgtCUrA2vxudA4QN" + }, + { + "__type__": "cc.Node", + "_name": "number", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 76 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 51, + "b": 51, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 58.04, + "height": 36.54 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 21.936, + 61.459, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "08JiIvh25MQLbBHF2EDuB8" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 75 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "30%", + "_N$string": "30%", + "_fontSize": 29, + "_lineHeight": 29, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "4ejvYL3kxDzq6r/YHZLUuV" + }, + { + "__type__": "cc.Node", + "_name": "mask", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 78 + }, + { + "__id__": 80 } ], "_active": true, "_components": [ { - "__id__": 75 + "__id__": 82 } ], "_prefab": null, @@ -2951,13 +3310,13 @@ "_name": "phone", "_objFlags": 0, "_parent": { - "__id__": 70 + "__id__": 77 }, "_children": [], - "_active": true, + "_active": false, "_components": [ { - "__id__": 72 + "__id__": 79 } ], "_prefab": null, @@ -3013,7 +3372,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 71 + "__id__": 78 }, "_enabled": true, "_materials": [ @@ -3045,13 +3404,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 70 + "__id__": 77 }, "_children": [], - "_active": true, + "_active": false, "_components": [ { - "__id__": 74 + "__id__": 81 } ], "_prefab": null, @@ -3107,7 +3466,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 73 + "__id__": 80 }, "_enabled": true, "_materials": [ @@ -3139,7 +3498,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 70 + "__id__": 77 }, "_enabled": true, "_materials": [ @@ -3186,6 +3545,102 @@ "_atlas": null, "_id": "c3I2fvdkFB9I3xv3zy8H3C" }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 85 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 118 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -609, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "b525Z//RNMt7kDFipTkumj" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 84 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8cbfe9a0-914f-4e4c-807b-b073b09f267c" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "f683b01d-4d4a-4b64-a054-741e0785d512" + }, + "_id": "3cEUZF+3RNUYwTQQpf9d/W" + }, { "__type__": "cc.Node", "_name": "Self", @@ -3195,31 +3650,28 @@ }, "_children": [ { - "__id__": 78 + "__id__": 87 }, { - "__id__": 80 - }, - { - "__id__": 86 - }, - { - "__id__": 88 + "__id__": 93 }, { "__id__": 95 }, { - "__id__": 97 + "__id__": 102 }, { - "__id__": 99 + "__id__": 104 + }, + { + "__id__": 106 } ], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 108 } ], "_prefab": null, @@ -3270,121 +3722,25 @@ "groupIndex": 0, "_id": "cf4fwLe4hJXLYT5vY7WfC9" }, - { - "__type__": "cc.Node", - "_name": "bg", - "_objFlags": 0, - "_parent": { - "__id__": 77 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 79 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 750, - "height": 118 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 58, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "b525Z//RNMt7kDFipTkumj" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 78 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "8cbfe9a0-914f-4e4c-807b-b073b09f267c" - }, - "_type": 0, - "_sizeMode": 1, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": { - "__uuid__": "f683b01d-4d4a-4b64-a054-741e0785d512" - }, - "_id": "3cEUZF+3RNUYwTQQpf9d/W" - }, { "__type__": "cc.Node", "_name": "pic", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [ { - "__id__": 81 + "__id__": 88 }, { - "__id__": 83 + "__id__": 90 } ], "_active": true, "_components": [ { - "__id__": 85 + "__id__": 92 } ], "_prefab": null, @@ -3440,13 +3796,13 @@ "_name": "pic", "_objFlags": 0, "_parent": { - "__id__": 80 + "__id__": 87 }, "_children": [], "_active": true, "_components": [ { - "__id__": 82 + "__id__": 89 } ], "_prefab": null, @@ -3502,7 +3858,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 81 + "__id__": 88 }, "_enabled": true, "_materials": [ @@ -3534,13 +3890,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 80 + "__id__": 87 }, "_children": [], "_active": true, "_components": [ { - "__id__": 84 + "__id__": 91 } ], "_prefab": null, @@ -3596,7 +3952,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 83 + "__id__": 90 }, "_enabled": true, "_materials": [ @@ -3628,7 +3984,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 80 + "__id__": 87 }, "_enabled": true, "_materials": [ @@ -3648,13 +4004,13 @@ "_name": "rankLab", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 87 + "__id__": 94 } ], "_prefab": null, @@ -3710,7 +4066,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 86 + "__id__": 93 }, "_enabled": true, "_materials": [ @@ -3743,17 +4099,17 @@ "_name": "rank", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [ { - "__id__": 89 + "__id__": 96 }, { - "__id__": 91 + "__id__": 98 }, { - "__id__": 93 + "__id__": 100 } ], "_active": true, @@ -3811,13 +4167,13 @@ "_name": "one", "_objFlags": 0, "_parent": { - "__id__": 88 + "__id__": 95 }, "_children": [], "_active": false, "_components": [ { - "__id__": 90 + "__id__": 97 } ], "_prefab": null, @@ -3873,7 +4229,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 89 + "__id__": 96 }, "_enabled": true, "_materials": [ @@ -3907,13 +4263,13 @@ "_name": "two", "_objFlags": 0, "_parent": { - "__id__": 88 + "__id__": 95 }, "_children": [], "_active": false, "_components": [ { - "__id__": 92 + "__id__": 99 } ], "_prefab": null, @@ -3969,7 +4325,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 91 + "__id__": 98 }, "_enabled": true, "_materials": [ @@ -4003,13 +4359,13 @@ "_name": "three", "_objFlags": 0, "_parent": { - "__id__": 88 + "__id__": 95 }, "_children": [], "_active": false, "_components": [ { - "__id__": 94 + "__id__": 101 } ], "_prefab": null, @@ -4065,7 +4421,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 93 + "__id__": 100 }, "_enabled": true, "_materials": [ @@ -4099,13 +4455,13 @@ "_name": "totalLab", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 96 + "__id__": 103 } ], "_prefab": null, @@ -4161,7 +4517,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 95 + "__id__": 102 }, "_enabled": true, "_materials": [ @@ -4194,13 +4550,13 @@ "_name": "nameLab", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 98 + "__id__": 105 } ], "_prefab": null, @@ -4256,7 +4612,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 97 + "__id__": 104 }, "_enabled": true, "_materials": [ @@ -4289,13 +4645,13 @@ "_name": "label", "_objFlags": 0, "_parent": { - "__id__": 77 + "__id__": 86 }, "_children": [], "_active": true, "_components": [ { - "__id__": 100 + "__id__": 107 } ], "_prefab": null, @@ -4351,7 +4707,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 99 + "__id__": 106 }, "_enabled": true, "_materials": [ @@ -4384,7 +4740,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 77 + "__id__": 86 }, "_enabled": true, "alignMode": 1, @@ -4417,13 +4773,13 @@ "_active": true, "_components": [ { - "__id__": 103 + "__id__": 110 }, { - "__id__": 104 + "__id__": 111 }, { - "__id__": 105 + "__id__": 112 } ], "_prefab": null, @@ -4479,7 +4835,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 109 }, "_enabled": true, "_materials": [ @@ -4511,7 +4867,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 109 }, "_enabled": true, "alignMode": 1, @@ -4538,7 +4894,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 109 }, "_enabled": true, "_normalMaterial": null, @@ -4547,7 +4903,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 106 + "__id__": 113 } ], "_N$interactable": true, @@ -4644,10 +5000,10 @@ "__id__": 69 }, "selfNode": { - "__id__": 77 + "__id__": 86 }, "phone": { - "__id__": 82 + "__id__": 89 }, "_id": "75enN1g2JHy7NqiKYVoxNQ" }, diff --git a/temp/BackupAssets/assets/prefab/qiu1.prefab b/temp/BackupAssets/assets/prefab/qiu1.prefab index 643e17d..47b50d9 100644 --- a/temp/BackupAssets/assets/prefab/qiu1.prefab +++ b/temp/BackupAssets/assets/prefab/qiu1.prefab @@ -504,7 +504,7 @@ "_srcBlendFactor": 770, "_dstBlendFactor": 771, "_spriteFrame": { - "__uuid__": "5024250a-bacf-47bd-a382-8fe9dc351d37" + "__uuid__": "d33a1397-766e-4fe0-936c-7bb5fc18c19e" }, "_type": 0, "_sizeMode": 1, @@ -517,9 +517,7 @@ "_fillStart": 0, "_fillRange": 0, "_isTrimmedMode": true, - "_atlas": { - "__uuid__": "f683b01d-4d4a-4b64-a054-741e0785d512" - }, + "_atlas": null, "_id": "" }, { @@ -742,7 +740,7 @@ "_srcBlendFactor": 770, "_dstBlendFactor": 771, "_spriteFrame": { - "__uuid__": "5024250a-bacf-47bd-a382-8fe9dc351d37" + "__uuid__": "d33a1397-766e-4fe0-936c-7bb5fc18c19e" }, "_type": 0, "_sizeMode": 1, @@ -755,9 +753,7 @@ "_fillStart": 0, "_fillRange": 0, "_isTrimmedMode": true, - "_atlas": { - "__uuid__": "f683b01d-4d4a-4b64-a054-741e0785d512" - }, + "_atlas": null, "_id": "" }, { diff --git a/assets/Script/Storage.js.meta b/temp/RemovedMetas/Script/Storage.js.meta similarity index 100% rename from assets/Script/Storage.js.meta rename to temp/RemovedMetas/Script/Storage.js.meta diff --git a/temp/quick-scripts/dst/__file_stats__.json b/temp/quick-scripts/dst/__file_stats__.json index c4cb62a..e8ffd5c 100644 --- a/temp/quick-scripts/dst/__file_stats__.json +++ b/temp/quick-scripts/dst/__file_stats__.json @@ -1 +1 @@ -{"version":"1.0.8","stats":{"C:/Work/Project/Test/Test/temp/quick-scripts/src/__qc_index__.js":"2024-05-28T02:03:44.242Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/ListView/ItemRender.js":"2024-05-28T02:03:44.188Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/CtrlFluxayTexture.js":"2024-05-28T02:03:44.184Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/GameOver.js":"2024-05-28T02:03:44.177Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/crypto/serverAPI.js":"2024-05-28T02:03:44.178Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js":"2024-05-28T02:03:44.175Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/tool/GameTool.js":"2024-05-28T02:03:44.180Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/GameData.js":"2024-05-28T02:03:44.197Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/Notification.js":"2024-05-28T02:03:44.196Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/Helloworld.js":"2024-05-28T02:03:44.192Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/Storage.js":"2024-05-28T02:03:44.185Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/GameManager.js":"2024-05-28T02:03:44.182Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/Load.js":"2024-05-28T02:03:44.170Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/BallAudioManager.js":"2024-05-28T02:03:44.187Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/GuideManager.js":"2024-05-28T02:03:44.167Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/test.js":"2024-05-28T02:03:44.199Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/Sun.js":"2024-05-28T02:03:44.171Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/crypto/crypto-js.min.js":"2024-05-28T02:03:44.194Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/ListView/List.js":"2024-05-28T02:03:44.190Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/tool/DynamicAtlasManager.js":"2024-05-28T02:03:44.168Z","C:/Work/Project/Test/Test/temp/quick-scripts/src/assets/Script/tool/Shake.js":"2024-05-28T02:03:44.173Z"}} +{"version":"1.0.8","stats":{"C:/Work/Project/Sun_moves/temp/quick-scripts/src/__qc_index__.js":"2024-05-30T10:01:32.316Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/ListView/ItemRender.js":"2024-05-30T09:49:46.892Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/GuideManager.js":"2024-05-30T09:49:46.876Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js":"2024-05-30T09:49:46.883Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/GameOver.js":"2024-05-30T09:49:46.884Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/crypto/serverAPI.js":"2024-05-30T09:49:46.885Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/tool/DynamicAtlasManager.js":"2024-05-30T09:49:46.878Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/Storage.js":"2024-05-30T10:01:32.291Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/test.js":"2024-05-30T09:49:46.898Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/Sun.js":"2024-05-30T09:49:46.880Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/Helloworld.js":"2024-05-30T09:49:46.894Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/BallAudioManager.js":"2024-05-30T09:49:46.890Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/GameData.js":"2024-05-30T09:49:46.897Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/ListView/List.js":"2024-05-30T09:49:46.893Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/tool/Shake.js":"2024-05-30T09:49:46.881Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/GameManager.js":"2024-05-30T09:49:46.887Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/Load.js":"2024-05-30T10:01:32.265Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/Notification.js":"2024-05-30T09:49:46.896Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/tool/GameTool.js":"2024-05-30T09:49:46.886Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/CtrlFluxayTexture.js":"2024-05-30T09:49:46.888Z","C:/Work/Project/Sun_moves/temp/quick-scripts/src/assets/Script/crypto/crypto-js.min.js":"2024-05-30T09:49:46.895Z"}} diff --git a/temp/quick-scripts/dst/__qc_bundle__.js b/temp/quick-scripts/dst/__qc_bundle__.js index d63281b..3bf4742 100644 --- a/temp/quick-scripts/dst/__qc_bundle__.js +++ b/temp/quick-scripts/dst/__qc_bundle__.js @@ -174,7 +174,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/CtrlFluxayTexture.js'; + var __filename = 'preview-scripts/assets/Script/GuideManager.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -182,99 +182,377 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'b48a2ukFF1FlJGSkUcHUIET', 'CtrlFluxayTexture'); -// Script/CtrlFluxayTexture.js +cc._RF.push(module, '3fd2fh6vHNJeISUizW09xat', 'GuideManager'); +// Script/GuideManager.ts "use strict"; - -cc.Class({ - "extends": cc.Component, - properties: { - m_delayTime: { - "default": 0 - }, - m_fluxayTime: { - "default": 1 - }, - m_intervalTime: { - "default": 1 - }, - m_scale: { - "default": 1 - }, - m_angle: { - "default": 0 - }, - m_reviseStartTime: { - "default": 0 - }, - m_reviseTimeScale: { - "default": 1 +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var GameData_1 = require("./GameData"); +var Notification_1 = require("./Notification"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + // LIFE-CYCLE CALLBACKS: + _this.dialog = null; + _this.ball = null; + _this.qiu1 = null; + _this.linePrefab = null; + return _this; + // update (dt) {} } - }, - ctor: function ctor() { - this._time = 0; - }, - onLoad: function onLoad() { - this._time -= this.m_delayTime; - var sprite = this.node.getComponent(cc.Sprite); - this._material = sprite.getMaterial(0); - - this._material.setProperty("u_scale", this.m_scale); - - this._material.setProperty("u_angle", this.m_angle); - - this.refreshSpriteFrameData(); - }, - update: function update(dt) { - if (this._time > this.m_fluxayTime + this.m_intervalTime) { - this._time = 0; - } - - var u_time = this._time / this.m_fluxayTime; - - if (this._time > this.m_fluxayTime) { - u_time = 1 + (this._time - this.m_fluxayTime) / this.m_intervalTime; - } - - if (this.m_reviseTimeScale != null && this.m_reviseStartTime != null) { - u_time = u_time / this.m_reviseTimeScale; - u_time -= this.m_reviseStartTime; - } - - this._material.setProperty("u_time", u_time); - - this._time += dt; - }, - refreshSpriteFrameData: function refreshSpriteFrameData() { - var sprite = this.node.getComponent(cc.Sprite); - var material = sprite.getMaterial(0); - var frame = sprite.spriteFrame; - - if (frame != null) { - // xMin - var l = frame.uv[0]; // xMax - - var r = frame.uv[6]; // yMax - - var b = frame.uv[3]; // yMin - - var t = frame.uv[5]; // 纹理在合图中的四个边界 uv 坐标 - - var u_uvOffset = new cc.Vec4(l, t, r, b); // 纹理是否旋转 - - var u_uvRotated = frame.isRotated() ? 1.0 : 0.0; // 设置材质的属性 - - if (material.getProperty("u_uvOffset") !== undefined) { - material.setProperty("u_uvOffset", u_uvOffset); - } - - if (material.getProperty("u_uvRotated") !== undefined) { - material.setProperty("u_uvRotated", u_uvRotated); - } - } - } -}); + // onLoad () {} + NewClass.prototype.start = function () { + this.custom = 1; + this.init(); + this.startGuide(0); + }; + NewClass.prototype.init = function () { + this.ball.zIndex = 100; + this.Pos_Array = []; + this.ball_Array = []; + this.begin = false; + this.clickNow = 0; + this.tip = null; + }; + NewClass.prototype.startGuide = function (type) { + var _this = this; + var num = this.custom; + var time = 0.5; + var delay = 1.5; + var name = "tip" + num; + if (type != 0) { + cc.tween(this.node) + .to(time, { opacity: 255 }) + .call(function () { + _this.custom += 1; + if (type != 0) + _this.custom = 2; + if (_this.custom == 2) + _this.createSun1(); + else if (_this.custom == 3) + _this.createSun2(); + else if (_this.custom == 4) { + _this.begin = true; + } + else if (_this.custom == 5) + cc.director.loadScene("GameScene"); + }) + .start(); + } + else { + this.tip = this.dialog.getChildByName(name); + this.tip.active = true; + this.tip.opacity = 0; + cc.tween(this.tip) + .to(time, { opacity: 255 }) + .start(); + // cc.tween(tip) + // .to(time,{opacity:255}) + // .delay(delay) + // .to(time,{opacity:0}) + // .call(() =>{ + // this.custom += 1; + // if(type != 0) this.custom = 2; + // if( this.custom == 2) this.createSun1(); + // else if( this.custom == 3) this.createSun2(); + // else if( this.custom == 4) this.begin = true; + // else if( this.custom == 5) cc.director.loadScene("GameScene"); + // }) + // .start(); + } + }; + //创建太阳 + NewClass.prototype.createSun1 = function () { + var _this = this; + this.ball_Array = []; + this.Pos_Array.push(cc.v2(-250, -216), cc.v2(200, -115), cc.v2(-35, -500)); + var time1 = this.calculateDistance(this.ball.x, this.ball.y, this.Pos_Array[0].x, this.Pos_Array[0].y); + this.ball.opacity = 0; + cc.tween(this.ball) + .to(time1, { position: this.Pos_Array[0] }) + .call(function () { + _this.createBall(0, 0, 0, false); + }) + .delay(1) + .call(function () { + _this.startGuide(0); + }) + .start(); + }; + NewClass.prototype.beginClick = function () { + for (var i = 0; i < this.ball_Array.length; i++) { + this.ball_Array[i].getComponent("Sun").move = false; + } + }; + NewClass.prototype.clickBtn = function () { + cc.director.loadScene("GameScene"); + }; + NewClass.prototype.next = function () { + var _this = this; + var time = 0.5; + cc.tween(this.tip) + .to(time, { opacity: 0 }) + .call(function () { + _this.custom += 1; + // if(type != 0) this.custom = 2; + if (_this.custom == 2) + _this.createSun1(); + else if (_this.custom == 3) + _this.createSun2(); + else if (_this.custom == 4) + _this.begin = true; + else if (_this.custom == 5) + cc.director.loadScene("GameScene"); + }) + .start(); + }; + NewClass.prototype.createSun2 = function () { + var _this = this; + var time2 = this.calculateDistance(this.Pos_Array[0].x, this.Pos_Array[0].y, this.Pos_Array[1].x, this.Pos_Array[1].y); + var time3 = this.calculateDistance(this.Pos_Array[1].x, this.Pos_Array[1].y, this.Pos_Array[2].x, this.Pos_Array[2].y); + this.ball.opacity = 255; + this.createLine(cc.v2(this.ball.x, this.ball.y), cc.v2(this.Pos_Array[1].x, this.Pos_Array[1].y), 0.5); + cc.tween(this.ball) + .to(time2, { position: this.Pos_Array[1] }) + .call(function () { + _this.createBall(1, 0, 0, false); + }) + .delay(0.5) + .call(function () { + _this.createLine(cc.v2(_this.ball.x, _this.ball.y), cc.v2(_this.Pos_Array[2].x, _this.Pos_Array[2].y), 0.5); + }) + .to(time3, { position: this.Pos_Array[2] }) + .call(function () { + _this.createBall(2, 0, 0, false); + _this.ball.opacity = 0; + }) + .delay(0.2) + .call(function () { + _this.destroyLine(); + _this.startGuide(0); + }) + .start(); + }; + NewClass.prototype.createBall = function (number, color, speed, repeat) { + var ball = null; + ball = cc.instantiate(this.qiu1); + ball.parent = this.node.getChildByName("Sun"); + ball.zIndex = this.Pos_Array.length - number; + ball.setPosition(this.ball.x, this.ball.y); + ball.getComponent("Sun").init(number, color, speed, repeat); + ball.getComponent("Sun").move = true; + this.ball_Array.push(ball); + }; + NewClass.prototype.calculateDistance = function (x1, y1, x2, y2) { + var dx = x2 - x1; + var dy = y2 - y1; + var distance = Math.sqrt(dx * dx + dy * dy); + if (distance > 800) + distance = 800; + var time = distance / 800 * 0.8; + return time; + }; + //移动创建下一个太阳 + NewClass.prototype.moveSun = function () { + }; + //获胜 + NewClass.prototype.passLevel = function () { + var _this = this; + this.destroyLine(); + var timeArray = []; + var timeCount = 0; + var ball = this.ball_Array[0]; + for (var i = 1; i < this.ball_Array.length; i++) { + var time = this.calculateDistance(this.ball_Array[i].x, this.ball_Array[i].y, this.ball_Array[i - 1].x, this.ball_Array[i - 1].y); + timeArray.push(time); + } + var _loop_1 = function (k) { + setTimeout(function () { + cc.tween(ball) + .to(timeArray[k - 1], { x: _this.ball_Array[k].x, y: _this.ball_Array[k].y }) + .call(function () { + _this.ball_Array[k].active = false; + if (k == _this.ball_Array.length - 1) { + setTimeout(function () { + _this.ball.opacity = 255; + _this.ball.position = cc.v3(ball.x, ball.y, 0); + _this.ball.active = false; + _this.startGuide(0); + }, 200); + } + }) + .start(); + }, timeCount * 1000); + timeCount += (timeArray[k - 1] + 0.1); + }; + for (var k = 1; k < this.ball_Array.length; k++) { + _loop_1(k); + } + }; + //点击太阳执行方法 + NewClass.prototype.clickSun = function (data) { + var _this = this; + if (this.begin == true) { + if (data == this.clickNow) { + GameData_1.default._instance.AudioManager.playAudioButton(); + if (this.clickNow > 0) { + this.createLine(cc.v2(this.ball_Array[this.clickNow - 1].x, this.ball_Array[this.clickNow - 1].y), cc.v2(this.ball_Array[this.clickNow].x, this.ball_Array[this.clickNow].y), 0.2); + } + this.clickNow += 1; + GameData_1.default._instance.GM_INFO.total += 1; + setTimeout(function () { + if (_this.ball_Array[_this.clickNow - 1]) + _this.ball_Array[_this.clickNow - 1].getChildByName("guang").active = false; + }, 200); + if (this.clickNow == 3) { + var win_1 = this.node.getChildByName("Win"); + win_1.active = true; + win_1.setScale(0); + cc.tween(win_1) + .delay(0.4) + .to(0.01, { scale: 2.5 }) + .to(0.35, { scale: 1 }) + .delay(0.6) + .call(function () { + win_1.active = false; + setTimeout(function () { + _this.passLevel(); + }, 400); + }) + .start(); + } + } + else { + GameData_1.default._instance.AudioManager.playWarning(); + this.begin = false; + this.loseLevel(1); + var over = this.node.getChildByName("Over"); + cc.tween(over) + .to(0.25, { opacity: 255 }) + .delay(0.1) + .to(0.2, { opacity: 0 }) + .delay(0.1) + .to(0.15, { opacity: 255 }) + .delay(0.1) + .to(0.1, { opacity: 0 }) + .start(); + } + } + }; + NewClass.prototype.loseLevel = function (type) { + var _this = this; + this.destroyLine(); + var ball = this.ball_Array[0]; + var _loop_2 = function (k) { + cc.tween(this_1.ball_Array[k]) + .to(0.6, { x: ball.x, y: ball.y }) + .call(function () { + _this.ball_Array[k].active = false; + if (k == _this.ball_Array.length - 1) { + _this.ball.opacity = 0; + _this.ball.position = cc.v3(ball.x, ball.y, 0); + _this.clearSun(); + _this.custom = 1; + _this.startGuide(1); + } + }) + .start(); + }; + var this_1 = this; + for (var k = 1; k < this.ball_Array.length; k++) { + _loop_2(k); + } + }; + NewClass.prototype.clearSun = function () { + for (var k = 0; k < this.ball_Array.length; k++) { + this.ball_Array[k].removeFromParent(); + this.ball_Array[k] = null; + } + this.ball_Array = []; + }; + //获取时间戳 + NewClass.prototype.getTime = function () { + var timestamp = new Date().getTime(); + return timestamp; + }; + NewClass.prototype.destroyLine = function () { + for (var i = 0; i < this.node.getChildByName("Line").children.length; i++) { + if (this.node.getChildByName("Line").children[i]) { + this.node.getChildByName("Line").children[i].removeFromParent(); + this.node.getChildByName("Line").children[i] = null; + } + } + this.node.getChildByName("Line").removeAllChildren(); + }; + NewClass.prototype.createLine = function (start, end, time) { + var line = cc.instantiate(this.linePrefab); + line.parent = this.node.getChildByName("Line"); + line.setPosition(start.x, start.y); + var dx = end.x - start.x; + var dy = end.y - start.y; + var distance = Math.sqrt(dx * dx + dy * dy); + line.height = distance; + line.getComponent(cc.Sprite).fillRange = 0; + line.angle = -this.calculateAngle(start.x, start.y, end.x, end.y); + cc.tween(line.getComponent(cc.Sprite)) + .to(time, { fillRange: 1 }) + .start(); + }; + NewClass.prototype.calculateAngle = function (x1, y1, x2, y2) { + var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI - 90; + return -angle; + }; + NewClass.prototype.onEnable = function () { + Notification_1.Notification.on("clickSun", this.clickSun, this); + }; + NewClass.prototype.onDisable = function () { + Notification_1.Notification.off("clickSun", this.clickSun); + }; + __decorate([ + property(cc.Node) + ], NewClass.prototype, "dialog", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "ball", void 0); + __decorate([ + property(cc.Prefab) + ], NewClass.prototype, "qiu1", void 0); + __decorate([ + property(cc.Prefab) + ], NewClass.prototype, "linePrefab", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; cc._RF.pop(); } @@ -287,7 +565,54 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDdHJsRmx1eGF5VGV4dHVyZS5qcyJdLCJuYW1lcyI6WyJjYyIsIkNsYXNzIiwiQ29tcG9uZW50IiwicHJvcGVydGllcyIsIm1fZGVsYXlUaW1lIiwibV9mbHV4YXlUaW1lIiwibV9pbnRlcnZhbFRpbWUiLCJtX3NjYWxlIiwibV9hbmdsZSIsIm1fcmV2aXNlU3RhcnRUaW1lIiwibV9yZXZpc2VUaW1lU2NhbGUiLCJjdG9yIiwiX3RpbWUiLCJvbkxvYWQiLCJzcHJpdGUiLCJub2RlIiwiZ2V0Q29tcG9uZW50IiwiU3ByaXRlIiwiX21hdGVyaWFsIiwiZ2V0TWF0ZXJpYWwiLCJzZXRQcm9wZXJ0eSIsInJlZnJlc2hTcHJpdGVGcmFtZURhdGEiLCJ1cGRhdGUiLCJkdCIsInVfdGltZSIsIm1hdGVyaWFsIiwiZnJhbWUiLCJzcHJpdGVGcmFtZSIsImwiLCJ1diIsInIiLCJiIiwidCIsInVfdXZPZmZzZXQiLCJWZWM0IiwidV91dlJvdGF0ZWQiLCJpc1JvdGF0ZWQiLCJnZXRQcm9wZXJ0eSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQUEsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDTCxhQUFTRCxFQUFFLENBQUNFLFNBRFA7QUFHTEMsRUFBQUEsVUFBVSxFQUFFO0FBQ1JDLElBQUFBLFdBQVcsRUFBRTtBQUNULGlCQUFTO0FBREEsS0FETDtBQUlSQyxJQUFBQSxZQUFZLEVBQUU7QUFDVixpQkFBUztBQURDLEtBSk47QUFPUkMsSUFBQUEsY0FBYyxFQUFFO0FBQ1osaUJBQVM7QUFERyxLQVBSO0FBVVJDLElBQUFBLE9BQU8sRUFBRTtBQUNMLGlCQUFTO0FBREosS0FWRDtBQWFSQyxJQUFBQSxPQUFPLEVBQUU7QUFDTCxpQkFBUztBQURKLEtBYkQ7QUFnQlJDLElBQUFBLGlCQUFpQixFQUFDO0FBQ2QsaUJBQVM7QUFESyxLQWhCVjtBQW1CUkMsSUFBQUEsaUJBQWlCLEVBQUM7QUFDZCxpQkFBUztB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QXdDQyxTQUEzQyxFQUNBO0FBQ0liLFFBQUFBLFFBQVEsQ0FBQ0wsV0FBVCxDQUFxQixhQUFyQixFQUFvQ2UsV0FBcEM7QUFDSDtBQUNKO0FBQ0o7QUExRkksQ0FBVCIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXG5jYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogY2MuQ29tcG9uZW50LFxuXG4gICAgcHJvcGVydGllczoge1xuICAgICAgICBtX2RlbGF5VGltZToge1xuICAgICAgICAgICAgZGVmYXVsdDogMCwgXG4gICAgICAgIH0sXG4gICAgICAgIG1fZmx1eGF5VGltZToge1xuICAgICAgICAgICAgZGVmYXVsdDogMSwgXG4gICAgICAgIH0sXG4gICAgICAgIG1faW50ZXJ2YWxUaW1lOiB7XG4gICAgICAgICAgICBkZWZhdWx0OiAxLCBcbiAgICAgICAgfSxcbiAgICAgICAgbV9zY2FsZToge1xuICAgICAgICAgICAgZGVmYXVsdDogMSwgXG4gICAgICAgIH0sXG4gICAgICAgIG1fYW5nbGU6IHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IDAsIFxuICAgICAgICB9LFxuICAgICAgICBtX3JldmlzZVN0YXJ0VGltZTp7XG4gICAgICAgICAgICBkZWZhdWx0OiAwLCBcbiAgICAgICAgfSxcbiAgICAgICAgbV9yZXZpc2VUaW1lU2NhbGU6e1xuICAgICAgICAgICAgZGVmYXVsdDogMSwgXG4gICAgICAgIH0sXG4gICAgfSxcblxuICAgIGN0b3IoKXtcbiAgICAgICAgdGhpcy5fdGltZSA9IDA7XG4gICAgfSxcbiAgICBvbkxvYWQgKCkge1xuICAgICAgICB0aGlzLl90aW1lIC09IHRoaXMubV9kZWxheVRpbWU7XG5cbiAgICAgICAgbGV0IHNwcml0ZSA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcbiAgICAgICAgdGhpcy5fbWF0ZXJpYWwgPSBzcHJpdGUuZ2V0TWF0ZXJpYWwoMCk7XG4gICAgICAgIHRoaXMuX21hdGVyaWFsLnNldFByb3BlcnR5KFwidV9zY2FsZVwiLCB0aGlzLm1fc2NhbGUpO1xuICAgICAgICB0aGlzLl9tYXRlcmlhbC5zZXRQcm9wZXJ0eShcInVfYW5nbGVcIiwgdGhpcy5tX2FuZ2xlKTtcblxuICAgICAgICB0aGlzLnJlZnJlc2hTcHJpdGVGcmFtZURhdGEoKTtcbiAgICB9LFxuXG4gICAgdXBkYXRlKGR0KSB7XG4gICAgICAgIGlmICh0aGlzLl90aW1lID4gKHRoaXMubV9mbHV4YXlUaW1lICsgdGhpcy5tX2ludGVydmFsVGltZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpbWUgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHVfdGltZSA9IHRoaXMuX3RpbWUvdGhpcy5tX2ZsdXhheVRpbWU7XG4gICAgICAgIGlmKHRoaXMuX3RpbWUgPnRoaXMubV9mbHV4YXlUaW1lKVxuICAgICAgICB7XG4gICAgICAgICAgICB1X3RpbWUgPSAxKygodGhpcy5fdGltZS10aGlzLm1fZmx1eGF5VGltZSkvdGhpcy5tX2ludGVydmFsVGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYodGhpcy5tX3JldmlzZVRpbWVTY2FsZSAhPSBudWxsICYmIHRoaXMubV9yZXZpc2VTdGFydFRpbWUgIT0gbnVsbClcbiAgICAgICAge1xuICAgICAgICAgICAgdV90aW1lID0gdV90aW1lL3RoaXMubV9yZXZpc2VUaW1lU2NhbGU7XG4gICAgICAgICAgICB1X3RpbWUgLT0gdGhpcy5tX3JldmlzZVN0YXJ0VGltZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tYXRlcmlhbC5zZXRQcm9wZXJ0eShcInVfdGltZVwiLCB1X3RpbWUpO1xuICAgICAgICB0aGlzLl90aW1lICs9IGR0O1xuICAgIH0sXG5cbiAgICByZWZyZXNoU3ByaXRlRnJhbWVEYXRhKCl7XG4gICAgICAgIGxldCBzcHJpdGUgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSk7XG4gICAgICAgIGxldCBtYXRlcmlhbCA9IHNwcml0ZS5nZXRNYXRlcmlhbCgwKTtcbiAgICAgICAgbGV0IGZyYW1lID0gc3ByaXRlLnNwcml0ZUZyYW1lO1xuXG4gICAgICAgIGlmKGZyYW1lICE9IG51bGwpXG4gICAgICAgIHtcbiAgICAgICAgICAgIC8vIHhNaW5cbiAgICAgICAgICAgIGxldCBsID0gZnJhbWUudXZbMF07XG4gICAgICAgICAgICAvLyB4TWF4XG4gICAgICAgICAgICBsZXQgciA9IGZyYW1lLnV2WzZdO1xuICAgICAgICAgICAgLy8geU1heFxuICAgICAgICAgICAgbGV0IGIgPSBmcmFtZS51dlszXTtcbiAgICAgICAgICAgIC8vIHlNaW5cbiAgICAgICAgICAgIGxldCB0ID0gZnJhbWUudXZbNV07XG4gICAgICAgICAgICAvLyDnurnnkIblnKjlkIjlm77kuK3nmoTlm5vkuKrovrnnlYwgdXYg5Z2Q5qCHXG4gICAgICAgICAgICBsZXQgdV91dk9mZnNldCA9IG5ldyBjYy5WZWM0KGwsIHQsIHIsIGIpO1xuICAgICAgICAgICAgLy8g57q555CG5piv5ZCm5peL6L2sXG4gICAgICAgICAgICBsZXQgdV91dlJvdGF0ZWQgPSBmcmFtZS5pc1JvdGF0ZWQoKSA/IDEuMCA6IDAuMDtcbiAgICAgICAgICAgIC8vIOiuvue9ruadkOi0qOeahOWxnuaAp1xuXG4gICAgICAgICAgICBpZihtYXRlcmlhbC5nZXRQcm9wZXJ0eShcInVfdXZPZmZzZXRcIikgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtYXRlcmlhbC5zZXRQcm9wZXJ0eShcInVfdXZPZmZzZXRcIiwgdV91dk9mZnNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZihtYXRlcmlhbC5nZXRQcm9wZXJ0eShcInVfdXZSb3RhdGVkXCIpICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuc2V0UHJvcGVydHkoXCJ1X3V2Um90YXRlZFwiLCB1X3V2Um90YXRlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn0pO1xuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHdWlkZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7QUFDbEYsdUNBQWtDO0FBQ2xDLCtDQUE4QztBQUN4QyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXFWQztRQW5WRyx3QkFBd0I7UUFFeEIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUV2QixVQUFJLEdBQVksSUFBSSxDQUFDO1FBRXJCLFVBQUksR0FBYyxJQUFJLENBQUM7UUFFdkIsZ0JBQVUsR0FBYyxJQUFJLENBQUM7O1FBMFU3QixpQkFBaUI7SUFDckIsQ0FBQztJQXBVRyxlQUFlO0lBRWYsd0JBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELHVCQUFJLEdBQUo7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELDZCQUFVLEdBQVYsVUFBVyxJQUFJO1FBQWYsaUJB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Q0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzdGLEdBQUcsQ0FBQyxDQUFDO1FBQ0wsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2xCLEVBQUUsQ0FBQyxLQUFLLEVBQUMsRUFBQyxRQUFRLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO2FBQ3RDLElBQUksQ0FBQztZQUNGLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLElBQUksQ0FBQztZQUNGLEtBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDN0YsR0FBRyxDQUFDLENBQUM7UUFDVCxDQUFDLENBQUM7YUFDRCxFQUFFLENBQUMsS0FBSyxFQUFDLEVBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQzthQUN0QyxJQUFJLENBQUM7WUFDRixLQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLEtBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsSUFBSSxDQUFDO1lBQ0YsS0FBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxFQUFFLENBQUM7SUFDYixDQUFDO0lBSUQsNkJBQVUsR0FBVixVQUFXLE1BQU0sRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLE1BQU07UUFDaEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxNQUFNLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELG9DQUFpQixHQUFqQixVQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQzVCLElBQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUcsUUFBUSxHQUFHLEdBQUc7WUFBRSxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLElBQU0sSUFBSSxHQUFHLFFBQVEsR0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXO0lBQ1gsMEJBQU8sR0FBUDtJQUVBLENBQUM7SUFFRCxJQUFJO0lBQ0osNEJBQVMsR0FBVDtRQUFBLGlCQTZCQztRQTVCRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUN4QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3ZFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO2dDQUNPLENBQUM7WUFDTCxVQUFVLENBQUM7Z0JBQ1AsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7cUJBQ2IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7cUJBQ2xFLElBQUksQ0FBQztvQkFDRixLQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ2xDLElBQUcsQ0FBQyxJQUFJLEtBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQzt3QkFDN0IsVUFBVSxDQUFDOzRCQUNQLEtBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQzs0QkFDeEIsS0FBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQzVDLEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzs0QkFDekIsS0FBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDdkIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUNYO2dCQUNMLENBQUMsQ0FBQztxQkFDRCxLQUFLLEVBQUUsQ0FBQztZQUNiLENBQUMsRUFBRSxTQUFTLEdBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsQ0FBQzs7UUFqQnRDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUU7b0JBQW5DLENBQUM7U0FrQlI7SUFDTCxDQUFDO0lBRUQsVUFBVTtJQUNWLDJCQUFRLEdBQVIsVUFBUyxJQUFJO1FBQWIsaUJBb0RDO1FBbkRHLElBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUM7WUFDbEIsSUFBRyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBQztnQkFDckIsa0JBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNsRCxJQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFDO29CQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzVGLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN4RSxHQUFHLENBQUMsQ0FBQztpQkFDUjtnQkFDRCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztnQkFDbkIsa0JBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLFVBQVUsQ0FBQztvQkFDUCxJQUFHLEtBQUksQ0FBQyxVQUFVLENBQUMsS0FBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUM7d0JBQy9CLEtBQUksQ0FBQyxVQUFVLENBQUMsS0FBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDaEYsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUdSLElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUM7b0JBQ2xCLElBQUksS0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMxQyxLQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFBQyxLQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNuQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUcsQ0FBQzt5QkFDWixLQUFLLENBQUMsR0FBRyxDQUFDO3lCQUNWLEVBQUUsQ0FBQyxJQUFJLEVBQUMsRUFBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLENBQUM7eUJBQ3BCLEVBQUUsQ0FBQyxJQUFJLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLENBQUM7eUJBQ2xCLEtBQUssQ0FBQyxHQUFHLENBQUM7eUJBQ1YsSUFBSSxDQUFDO3dCQUNGLEtBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO3dCQUNuQixVQUFVLENBQUM7NEJBQ1AsS0FBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO3dCQUNyQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBRVosQ0FBQyxDQUFDO3lCQUNELEtBQUssRUFBRSxDQUFDO2lCQUNaO2FBQ0o7aUJBQ0c7Z0JBQ0Esa0JBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFFbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDakIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzVDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO3FCQUNiLEVBQUUsQ0FBQyxJQUFJLEVBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLENBQUM7cUJBQ3RCLEtBQUssQ0FBQyxHQUFHLENBQUM7cUJBQ1YsRUFBRSxDQUFDLEdBQUcsRUFBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQztxQkFDbkIsS0FBSyxDQUFDLEdBQUcsQ0FBQztxQkFDVixFQUFFLENBQUMsSUFBSSxFQUFDLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxDQUFDO3FCQUN0QixLQUFLLENBQUMsR0FBRyxDQUFDO3FCQUNWLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUM7cUJBQ25CLEtBQUssRUFBRSxDQUFDO2FBQ1o7U0FDSjtJQUNMLENBQUM7SUFFRCw0QkFBUyxHQUFULFVBQVUsSUFBSTtRQUFkLGlCQWtCQztRQWpCRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FDdEIsQ0FBQztZQUNMLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzNCLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDO2lCQUMzQixJQUFJLENBQUM7Z0JBQ0YsS0FBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNsQyxJQUFHLENBQUMsSUFBSSxLQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUM7b0JBQzdCLEtBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztvQkFDdEIsS0FBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzVDLEtBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDaEIsS0FBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7b0JBQ2hCLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3RCO1lBQ0wsQ0FBQyxDQUFDO2lCQUNELEtBQUssRUFBRSxDQUFBOzs7UUFiWixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO29CQUFuQyxDQUFDO1NBY1I7SUFDTCxDQUFDO0lBRUQsMkJBQVEsR0FBUjtRQUNJLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDN0I7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTztJQUNQLDBCQUFPLEdBQVA7UUFDSSxJQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCw4QkFBVyxHQUFYO1FBQ0ksS0FBSSxJQUFJLENBQUMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFDbEUsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQ3ZEO1NBQ0o7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCw2QkFBVSxHQUFWLFVBQVcsS0FBSyxFQUFDLEdBQUcsRUFBQyxJQUFJO1FBQ3JCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsQyxJQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0QsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyQyxFQUFFLENBQUMsSUFBSSxFQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDO2FBQ3RCLEtBQUssRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVELGlDQUFjLEdBQWQsVUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3pCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFDLEVBQUUsRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDbEIsQ0FBQztJQUVELDJCQUFRLEdBQVI7UUFDSSwyQkFBWSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsNEJBQVMsR0FBVDtRQUNJLDJCQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQTlVRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzRDQUNLO0lBRXZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFFckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzswQ0FDRztJQUV2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO2dEQUNTO0lBVlosUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXFWNUI7SUFBRCxlQUFDO0NBclZELEFBcVZDLENBclZxQyxFQUFFLENBQUMsU0FBUyxHQXFWakQ7a0JBclZvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5pbXBvcnQgR2FtZURhdGEgZnJvbSAnLi9HYW1lRGF0YSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4vTm90aWZpY2F0aW9uJztcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGRpYWxvZzogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGJhbGw6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHFpdTE6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgbGluZVByZWZhYjogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIGNsaWNrTm93Om51bWJlcjtcclxuICAgIGN1c3RvbTogbnVtYmVyO1xyXG4gICAgUG9zX0FycmF5OiBhbnk7XHJcbiAgICBiYWxsX0FycmF5OiBhbnk7XHJcbiAgICBiZWdpbjogYm9vbGVhbjtcclxuICAgIHRpcDogY2MuTm9kZTtcclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLmN1c3RvbSA9IDE7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgICAgdGhpcy5zdGFydEd1aWRlKDApO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoKXtcclxuICAgICAgICB0aGlzLmJhbGwuekluZGV4ID0gMTAwO1xyXG4gICAgICAgIHRoaXMuUG9zX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5iYWxsX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5iZWdpbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2xpY2tOb3cgPSAwO1xyXG4gICAgICAgIHRoaXMudGlwID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydEd1aWRlKHR5cGUpe1xyXG4gICAgICAgIGxldCBudW0gPSB0aGlzLmN1c3RvbTtcclxuICAgICAgICBsZXQgdGltZSA9IDAuNTtcclxuICAgICAgICBsZXQgZGVsYXkgPSAxLjU7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcInRpcFwiICsgbnVtO1xyXG5cclxuICAgICAgICBpZih0eXBlIT0wKXtcclxuICAgICAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlKVxyXG4gICAgICAgICAgICAudG8odGltZSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlICE9IDApIHRoaXMuY3VzdG9tID0gMjtcclxuICAgICAgICAgICAgICAgIGlmKCB0aGlzLmN1c3RvbSA9PSAyKSAgdGhpcy5jcmVhdGVTdW4xKCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSAzKSAgdGhpcy5jcmVhdGVTdW4yKCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSA0KXtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iZWdpbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9ICBcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoIHRoaXMuY3VzdG9tID09IDUpIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy50aXAgPSB0aGlzLmRpYWxvZy5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICAgICAgdGhpcy50aXAuYWN0aXZlID0gdHJ1ZTsgdGhpcy50aXAub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMudGlwKVxyXG4gICAgICAgICAgICAudG8odGltZSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgLy8gY2MudHdlZW4odGlwKVxyXG4gICAgICAgICAgICAvLyAudG8odGltZSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAvLyAuZGVsYXkoZGVsYXkpXHJcbiAgICAgICAgICAgIC8vIC50byh0aW1lLHtvcGFjaXR5OjB9KVxyXG4gICAgICAgICAgICAvLyAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuY3VzdG9tICs9IDE7XHJcbiAgICAgICAgICAgIC8vICAgICBpZih0eXBlICE9IDApIHRoaXMuY3VzdG9tID0gMjtcclxuICAgICAgICAgICAgLy8gICAgIGlmKCB0aGlzLmN1c3RvbSA9PSAyKSAgdGhpcy5jcmVhdGVTdW4xKCk7XHJcbiAgICAgICAgICAgIC8vICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSAzKSAgdGhpcy5jcmVhdGVTdW4yKCk7XHJcbiAgICAgICAgICAgIC8vICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSA0KSAgdGhpcy5iZWdpbiA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSA1KSBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICBcclxuICAgICAgICAgICAgLy8gfSlcclxuICAgICAgICAgICAgLy8gLnN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC8v5Yib5bu65aSq6ZizXHJcbiAgICBjcmVhdGVTdW4xKCl7XHJcbiAgICAgICAgdGhpcy5iYWxsX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5Qb3NfQXJyYXkucHVzaChjYy52MigtMjUwLC0yMTYpLGNjLnYyKDIwMCwtMTE1KSxjYy52MigtMzUsLTUwMCkpO1xyXG4gICAgICAgIGxldCB0aW1lMSA9IHRoaXMuY2FsY3VsYXRlRGlzdGFuY2UodGhpcy5iYWxsLngsdGhpcy5iYWxsLnksdGhpcy5Qb3NfQXJyYXlbMF0ueCx0aGlzLlBvc19BcnJheVswXS55KVxyXG4gICAgICAgIHRoaXMuYmFsbC5vcGFjaXR5ID0gMDtcclxuICAgICAgICBjYy50d2Vlbih0aGlzLmJhbGwpXHJcbiAgICAgICAgLnRvKHRpbWUxLHtwb3NpdGlvbjp0aGlzLlBvc19BcnJheVswXX0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQmFsbCgwLDAsMCxmYWxzZSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZGVsYXkoMSlcclxuICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgdGhpcy5zdGFydEd1aWRlKDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgYmVnaW5DbGljaygpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJTdW5cIikubW92ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGlja0J0bigpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBuZXh0KCl7XHJcbiAgICAgICAgbGV0IHRpbWUgPSAwLjU7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy50aXApXHJcbiAgICAgICAgLnRvKHRpbWUse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tICs9IDE7XHJcbiAgICAgICAgICAgIC8vIGlmKHR5cGUgIT0gMCkgdGhpcy5jdXN0b20gPSAyO1xyXG4gICAgICAgICAgICBpZiggdGhpcy5jdXN0b20gPT0gMikgIHRoaXMuY3JlYXRlU3VuMSgpO1xyXG4gICAgICAgICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSAzKSAgdGhpcy5jcmVhdGVTdW4yKCk7XHJcbiAgICAgICAgICAgIGVsc2UgaWYoIHRoaXMuY3VzdG9tID09IDQpICB0aGlzLmJlZ2luID0gdHJ1ZTtcclxuICAgICAgICAgICAgZWxzZSBpZiggdGhpcy5jdXN0b20gPT0gNSkgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG5cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVN1bjIoKXtcclxuICAgICAgICBsZXQgdGltZTIgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMuUG9zX0FycmF5WzBdLngsdGhpcy5Qb3NfQXJyYXlbMF0ueSx0aGlzLlBvc19BcnJheVsxXS54LHRoaXMuUG9zX0FycmF5WzFdLnkpXHJcbiAgICAgICAgbGV0IHRpbWUzID0gdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLlBvc19BcnJheVsxXS54LHRoaXMuUG9zX0FycmF5WzFdLnksdGhpcy5Qb3NfQXJyYXlbMl0ueCx0aGlzLlBvc19BcnJheVsyXS55KVxyXG4gICAgICAgIHRoaXMuYmFsbC5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIHRoaXMuY3JlYXRlTGluZShjYy52Mih0aGlzLmJhbGwueCx0aGlzLmJhbGwueSksY2MudjIodGhpcy5Qb3NfQXJyYXlbMV0ueCx0aGlzLlBvc19BcnJheVsxXS55KSxcclxuICAgICAgICAwLjUpO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbClcclxuICAgICAgICAudG8odGltZTIse3Bvc2l0aW9uOnRoaXMuUG9zX0FycmF5WzFdfSlcclxuICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVCYWxsKDEsMCwwLGZhbHNlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5kZWxheSgwLjUpXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTGluZShjYy52Mih0aGlzLmJhbGwueCx0aGlzLmJhbGwueSksY2MudjIodGhpcy5Qb3NfQXJyYXlbMl0ueCx0aGlzLlBvc19BcnJheVsyXS55KSxcclxuICAgICAgICAgICAgMC41KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC50byh0aW1lMyx7cG9zaXRpb246dGhpcy5Qb3NfQXJyYXlbMl19KVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUJhbGwoMiwwLDAsZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmJhbGwub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZGVsYXkoMC4yKVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lMaW5lKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRHdWlkZSgwKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuXHJcbiAgICBjcmVhdGVCYWxsKG51bWJlcixjb2xvcixzcGVlZCxyZXBlYXQpe1xyXG4gICAgICAgIGxldCBiYWxsID0gbnVsbDtcclxuICAgICAgICBiYWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5xaXUxKTtcclxuICAgICAgICBiYWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlN1blwiKTtcclxuICAgICAgICBiYWxsLnpJbmRleCA9IHRoaXMuUG9zX0FycmF5Lmxlbmd0aCAtIG51bWJlcjtcclxuICAgICAgICBiYWxsLnNldFBvc2l0aW9uKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55KTtcclxuICAgICAgICBiYWxsLmdldENvbXBvbmVudChcIlN1blwiKS5pbml0KG51bWJlcixjb2xvcixzcGVlZCxyZXBlYXQpO1xyXG4gICAgICAgIGJhbGwuZ2V0Q29tcG9uZW50KFwiU3VuXCIpLm1vdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYmFsbF9BcnJheS5wdXNoKGJhbGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZURpc3RhbmNlKHgxLCB5MSwgeDIsIHkyKSB7XHJcbiAgICAgICAgY29uc3QgZHggPSB4MiAtIHgxO1xyXG4gICAgICAgIGNvbnN0IGR5ID0geTIgLSB5MTtcclxuICAgICAgICB2YXIgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHgqZHggKyBkeSpkeSk7XHJcbiAgICAgICAgaWYoZGlzdGFuY2UgPiA4MDApIGRpc3RhbmNlID0gODAwO1xyXG4gICAgICAgIGNvbnN0IHRpbWUgPSBkaXN0YW5jZS84MDAgKiAwLjg7XHJcbiAgICAgICAgcmV0dXJuIHRpbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy/np7vliqjliJvlu7rkuIvkuIDkuKrlpKrpmLNcclxuICAgIG1vdmVTdW4oKXtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/ojrfog5xcclxuICAgIHBhc3NMZXZlbCgpe1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUxpbmUoKTtcclxuICAgICAgICBsZXQgdGltZUFycmF5ID0gW107XHJcbiAgICAgICAgbGV0IHRpbWVDb3VudCA9IDA7XHJcbiAgICAgICAgbGV0IGJhbGwgPSB0aGlzLmJhbGxfQXJyYXlbMF07XHJcbiAgICAgICAgZm9yKGxldCBpPTE7IGk8IHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGxldCB0aW1lID0gdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLmJhbGxfQXJyYXlbaV0ueCx0aGlzLmJhbGxfQXJyYXlbaV0ueSxcclxuICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpLTFdLngsdGhpcy5iYWxsX0FycmF5W2ktMV0ueSk7XHJcbiAgICAgICAgICAgIHRpbWVBcnJheS5wdXNoKHRpbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IobGV0IGs9MTsgazwgdGhpcy5iYWxsX0FycmF5Lmxlbmd0aDsgaysrKXtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy50d2VlbihiYWxsKVxyXG4gICAgICAgICAgICAgICAgLnRvKHRpbWVBcnJheVtrLTFdLHt4OnRoaXMuYmFsbF9BcnJheVtrXS54LHk6dGhpcy5iYWxsX0FycmF5W2tdLnl9KVxyXG4gICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2tdLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGsgPT0gdGhpcy5iYWxsX0FycmF5Lmxlbmd0aC0xKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbC5wb3NpdGlvbiA9IGNjLnYzKGJhbGwueCxiYWxsLnksMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0R3VpZGUoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDIwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICB9LCB0aW1lQ291bnQqMTAwMCk7XHJcbiAgICAgICAgICAgIHRpbWVDb3VudCArPSAodGltZUFycmF5W2stMV0rMC4xKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/ngrnlh7vlpKrpmLPmiafooYzmlrnms5VcclxuICAgIGNsaWNrU3VuKGRhdGEpe1xyXG4gICAgICAgIGlmKHRoaXMuYmVnaW4gPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGlmKGRhdGEgPT0gdGhpcy5jbGlja05vdyl7XHJcbiAgICAgICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuQXVkaW9NYW5hZ2VyLnBsYXlBdWRpb0J1dHRvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jbGlja05vdyA+IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTGluZShjYy52Mih0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXS54LHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93LTFdLnkpLFxyXG4gICAgICAgICAgICAgICAgICAgIGNjLnYyKHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93XS54LHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93XS55KSxcclxuICAgICAgICAgICAgICAgICAgICAwLjIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jbGlja05vdyArPSAxO1xyXG4gICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwgKz0gMTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93LTFdKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXS5nZXRDaGlsZEJ5TmFtZShcImd1YW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSwgMjAwKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jbGlja05vdyA9PSAzKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgd2luID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2luXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbi5hY3RpdmUgPSB0cnVlOyB3aW4uc2V0U2NhbGUoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4od2luKVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMDEse3NjYWxlOjIuNX0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMzUse3NjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjYpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhc3NMZXZlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCA0MDApO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5BdWRpb01hbmFnZXIucGxheVdhcm5pbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmVnaW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvc2VMZXZlbCgxKVxyXG4gICAgICAgICAgICAgICAgbGV0IG92ZXIgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJPdmVyXCIpO1xyXG4gICAgICAgICAgICAgICAgY2MudHdlZW4ob3ZlcilcclxuICAgICAgICAgICAgICAgIC50bygwLjI1LHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMix7b3BhY2l0eTowfSlcclxuICAgICAgICAgICAgICAgIC5kZWxheSgwLjEpXHJcbiAgICAgICAgICAgICAgICAudG8oMC4xNSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAgICAgLmRlbGF5KDAuMSlcclxuICAgICAgICAgICAgICAgIC50bygwLjEse29wYWNpdHk6MH0pXHJcbiAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsb3NlTGV2ZWwodHlwZSl7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95TGluZSgpO1xyXG4gICAgICAgIGxldCBiYWxsID0gdGhpcy5iYWxsX0FycmF5WzBdO1xyXG4gICAgICAgIGZvcihsZXQgaz0xOyBrPCB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBrKyspe1xyXG4gICAgICAgICAgICBjYy50d2Vlbih0aGlzLmJhbGxfQXJyYXlba10pXHJcbiAgICAgICAgICAgIC50bygwLjYse3g6YmFsbC54LHk6YmFsbC55fSlcclxuICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlba10uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZihrID09IHRoaXMuYmFsbF9BcnJheS5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbC5wb3NpdGlvbiA9IGNjLnYzKGJhbGwueCxiYWxsLnksMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhclN1bigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tID0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0R3VpZGUoMSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyU3VuKCl7XHJcbiAgICAgICAgZm9yKGxldCBrPTA7IGs8IHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7IGsrKyl7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYmFsbF9BcnJheSA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIC8v6I635Y+W5pe26Ze05oizXHJcbiAgICBnZXRUaW1lKCl7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95TGluZSgpIHtcclxuICAgICAgICBmb3IobGV0IGkgPTA7IGk8IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikuY2hpbGRyZW4ubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikuY2hpbGRyZW5baV0pe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKS5jaGlsZHJlbltpXS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpLmNoaWxkcmVuW2ldID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlTGluZShzdGFydCxlbmQsdGltZSl7XHJcbiAgICAgICAgbGV0IGxpbmUgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLmxpbmVQcmVmYWIpO1xyXG4gICAgICAgIGxpbmUucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKTtcclxuICAgICAgICBsaW5lLnNldFBvc2l0aW9uKHN0YXJ0Lngsc3RhcnQueSk7XHJcbiAgICBcclxuICAgICAgICBjb25zdCBkeCA9IGVuZC54IC0gc3RhcnQueDtcclxuICAgICAgICBjb25zdCBkeSA9IGVuZC55IC0gc3RhcnQueTtcclxuICAgICAgICB2YXIgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHgqZHggKyBkeSpkeSk7XHJcbiAgICAgICAgbGluZS5oZWlnaHQgPSBkaXN0YW5jZTtcclxuICAgICAgICBsaW5lLmdldENvbXBvbmVudChjYy5TcHJpdGUpLmZpbGxSYW5nZSA9IDA7XHJcbiAgICAgICAgbGluZS5hbmdsZSA9IC10aGlzLmNhbGN1bGF0ZUFuZ2xlKHN0YXJ0Lngsc3RhcnQueSxlbmQueCxlbmQueSk7XHJcbiAgICAgICAgY2MudHdlZW4obGluZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKSlcclxuICAgICAgICAudG8odGltZSx7ZmlsbFJhbmdlOjF9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjYWxjdWxhdGVBbmdsZSh4MSwgeTEsIHgyLCB5Mikge1xyXG4gICAgICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIoeTIteTEseDIteDEpKjE4MCAvIE1hdGguUEkgLSA5MDtcclxuICAgICAgICByZXR1cm4gLWFuZ2xlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRW5hYmxlICgpIHtcclxuICAgICAgICBOb3RpZmljYXRpb24ub24oXCJjbGlja1N1blwiLCB0aGlzLmNsaWNrU3VuLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRpc2FibGUgKCkge1xyXG4gICAgICAgIE5vdGlmaWNhdGlvbi5vZmYoXCJjbGlja1N1blwiLCB0aGlzLmNsaWNrU3VuKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event'); +// migration/use_v2.1-2.2.1_cc.Toggle_event.js + +"use strict"; + +/* + * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version. + * You do not need to manually add this script in any other project. + * If you don't use cc.Toggle in your project, you can delete this script directly. + * If your project is hosted in VCS such as git, submit this script together. + * + * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程, + * 你无需在任何其它项目中手动添加此脚本。 + * 如果你的项目中没用到 Toggle,可直接删除该脚本。 + * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 + */ +if (cc.Toggle) { + // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code + // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 + cc.Toggle._triggerEventInScript_isChecked = true; +} + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQVAsRUFBZTtBQUNYO0FBQ0E7QUFDQUQsRUFBQUEsRUFBRSxDQUFDQyxNQUFILENBQVVDLCtCQUFWLEdBQTRDLElBQTVDO0FBQ0giLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+aIkO+8jOS7heeUqOS6juWFvOWuuSB2Mi4xLjAgfiAyLjIuMSDniYjmnKznmoTlt6XnqIvvvIxcclxuICog5L2g5peg6ZyA5Zyo5Lu75L2V5YW25a6D6aG555uu5Lit5omL5Yqo5re75Yqg5q2k6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruS4reayoeeUqOWIsCBUb2dnbGXvvIzlj6/nm7TmjqXliKDpmaTor6XohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5pyJ5omY566h5LqOIGdpdCDnrYnniYjmnKzlupPvvIzor7flsIbmraTohJrmnKzkuIDlubbkuIrkvKDjgIJcclxuICovXHJcblxyXG5pZiAoY2MuVG9nZ2xlKSB7XHJcbiAgICAvLyBXaGV0aGVyIHRvIHRyaWdnZXIgJ3RvZ2dsZScgYW5kICdjaGVja0V2ZW50cycgZXZlbnRzIHdoZW4gbW9kaWZ5aW5nICd0b2dnbGUuaXNDaGVja2VkJyBpbiB0aGUgY29kZVxyXG4gICAgLy8g5Zyo5Luj56CB5Lit5L+u5pS5ICd0b2dnbGUuaXNDaGVja2VkJyDml7bmmK/lkKbop6blj5EgJ3RvZ2dsZScg5LiOICdjaGVja0V2ZW50cycg5LqL5Lu2XHJcbiAgICBjYy5Ub2dnbGUuX3RyaWdnZXJFdmVudEluU2NyaXB0X2lzQ2hlY2tlZCA9IHRydWU7XHJcbn1cclxuIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -353,6 +678,9 @@ var NewClass = /** @class */ (function (_super) { // onLoad () {} NewClass.prototype.start = function () { this.count.string = GameData_1.default._instance.GM_INFO.total; + if (GameData_1.default._instance.GM_INFO.mean_Time > 10) { + GameData_1.default._instance.GM_INFO.mean_Time = (parseInt(Math.random() * 10 + "") + 5) / 10; + } this.time.string = GameData_1.default._instance.GM_INFO.mean_Time + "s"; this.listData = []; this.selfData = null; @@ -501,7 +829,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lT3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRix1Q0FBa0M7QUFFbEMsZ0RBQTBDO0FBR3BDLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBdUpDO1FBcEpHLFdBQUssR0FBYSxJQUFJLENBQUM7UUFHdkIsVUFBSSxHQUFhLElBQUksQ0FBQztRQUd0QixjQUFRLEdBQVksSUFBSSxDQUFDO1FBRXpCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFFcEIsU0FBRyxHQUFZLElBQUksQ0FBQztRQUVwQixXQUFLLEdBQVksSUFBSSxDQUFDO1FBRXRCLFVBQUksR0FBWSxJQUFJLENBQUM7UUFFckIsVUFBSSxHQUFZLElBQUksQ0FBQzs7UUFtSXJCLGlCQUFpQjtJQUNyQixDQUFDO0lBaElHLHdCQUF3QjtJQUV4QixlQUFlO0lBRWYsd0JBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENB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MENBQ0c7SUFuQkosUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXVKNUI7SUFBRCxlQUFDO0NBdkpELEFBdUpDLENBdkpxQyxFQUFFLENBQUMsU0FBUyxHQXVKakQ7a0JBdkpvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVEYXRhIGZyb20gXCIuL0dhbWVEYXRhXCI7XHJcbmltcG9ydCBMaXN0IGZyb20gXCIuL0xpc3RWaWV3L0xpc3RcIjtcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuaW1wb3J0IFJxIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGNvdW50OiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgdGltZTogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBvbmU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0d286IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0aHJlZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZvdXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmaXZlOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBsaXN0RGF0YTogYW55O1xyXG4gICAgc2VsZkRhdGE6IGFueTtcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLmNvdW50LnN0cmluZyA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnRvdGFsO1xyXG4gICAgICAgIHRoaXMudGltZS5zdHJpbmcgPSBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUgKyBcInNcIjtcclxuICAgICAgICB0aGlzLmxpc3REYXRhID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxmRGF0YSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5vbmUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50d28uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aHJlZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZvdXIuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5maXZlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIC8vIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuXHJcbiAgICBzdWNjZXNzKGRhdGEpe1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgYmFjaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIlJhbmtTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBhZ2Fpbigpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRSYW5rKCl7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcInBhZ2VcIjoxLFxyXG4gICAgICAgICAgICBcInBhZ2VTaXplXCI6MTAwXHJcbiAgICAgICAgfTsgXHJcbiAgICAgICAgSHR0cFV0aWwucmFua0RhdGEoMix0aGlzLmdldFJhbmtEYXRhLmJpbmQodGhpcykscG9zdERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICB0aGlzLmxpc3REYXRhID0gZGF0YS5kYXRhLmxpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEgPSBkYXRhLmRhdGEuaW5mbztcclxuICAgICAgICAgICAgbGV0IHJhbmtEYXRhID0gW107XHJcbiAgICAgICAgICAgIGxldCBzZWxmID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuc2VsZkRhdGEubmlja05hbWUubGVuZ3RoID4gNCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGZEYXRhLm5pY2tOYW1lPSB0aGlzLnNlbGZEYXRhLm5pY2tOYW1lLnN1YnN0cmluZygwLDQpICsgXCIuLi5cIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJuYW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy5zZWxmRGF0YS5uaWNrTmFtZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInRvdGFsXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy5zZWxmRGF0YS50b3RhbFN1bkNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLnNldFBpYyh0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKSx0aGlzLnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wO2k8PXRoaXMubGlzdERhdGEubGVuZ3RoLTE7aSsrKXtcclxuICAgICAgICAgICAgICAgIHJhbmtEYXRhLnB1c2goe3Jhbms6KGkrMSksIG5hbWU6dGhpcy5saXN0RGF0YVtpXS5uaWNrTmFtZSwgdG90YWw6dGhpcy5saXN0RGF0YVtpXS50b3RhbFN1bkNvdW50LCBwaWM6dGhpcy5saXN0RGF0YVtpXS5waWN9KTtcclxuICAgICAgICAgICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnVzZXJJZCA9PSB0aGlzLmxpc3REYXRhW2ldLnVzZXJJZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPShpKzEpICsgXCJcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihpID09ICh0aGlzLmxpc3REYXRhLmxlbmd0aC0xKSAmJiBzZWxmID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IFwiOTkrXCI7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoaTw1KSB0aGlzLnNldFJhbmsoaSx0aGlzLmxpc3REYXRhW2ldKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmFuayhudW0sZGF0YSl7XHJcbiAgICAgICAgdmFyIGhpdE5vZGUgPSBudWxsO1xyXG4gICAgICAgIGlmKG51bSA9PSAwKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAxKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMudHdvO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAyKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMudGhyZWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYobnVtID09IDMpe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy5mb3VyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSA0KXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMuZml2ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoaGl0Tm9kZSl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYoZGF0YS5uaWNrTmFtZS5sZW5ndGggPiA0KXtcclxuICAgICAgICAgICAgICAgIGRhdGEubmlja05hbWU9IGRhdGEubmlja05hbWUuc3Vic3RyaW5nKDAsNCkgKyBcIi4uLlwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLnRvdGFsU3VuQ291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGljKGhpdE5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLGRhdGEucGljKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRQaWMobm9kZSxwaWMpe1xyXG4gICAgICAgIG5vZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHVybCA9IHBpYztcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgZmV0Y2godXJsKVxyXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICBcclxuICAgICAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYoZXJyTm8gPT0gXCI1MDkzXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIFgtSW5mbzonLCBlcnJvcik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUodXJsLCB7ZXh0OicuanBnJ30sKGVyciwgdGV4dHVyZTpjYy5UZXh0dXJlMkQpID0+IHtcclxuICAgICAgICAgICAgaWYodGV4dHVyZSl7XHJcbiAgICAgICAgICAgICAgICBub2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBub2RlLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsdGV4dHVyZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lT3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRix1Q0FBa0M7QUFFbEMsZ0RBQTBDO0FBR3BDLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBMEpDO1FBdkpHLFdBQUssR0FBYSxJQUFJLENBQUM7UUFHdkIsVUFBSSxHQUFhLElBQUksQ0FBQztRQUd0QixjQUFRLEdBQVksSUFBSSxDQUFDO1FBRXpCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFFcEIsU0FBRyxHQUFZLElBQUksQ0FBQztRQUVwQixXQUFLLEdBQVksSUFBSSxDQUFDO1FBRXRCLFVBQUksR0FBWSxJQUFJLENBQUM7UUFFckIsVUFBSSxHQUFZLElBQUksQ0FBQzs7UUFzSXJCLGlCQUFpQjtJQUNyQixDQUFDO0lBbklHLHdCQUF3QjtJQUV4QixlQUFlO0lBRWYsd0JBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDckQsSUFBRyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLEVBQUUsRUFBQztZQUN6QyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFBO1NBQzlFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FB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LENBQUMsSUFBSSxDQUFDO3lDQUNFO0lBRXBCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ0U7SUFFcEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUV0QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNHO0lBRXJCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFuQkosUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQTBKNUI7SUFBRCxlQUFDO0NBMUpELEFBMEpDLENBMUpxQyxFQUFFLENBQUMsU0FBUyxHQTBKakQ7a0JBMUpvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVEYXRhIGZyb20gXCIuL0dhbWVEYXRhXCI7XHJcbmltcG9ydCBMaXN0IGZyb20gXCIuL0xpc3RWaWV3L0xpc3RcIjtcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuaW1wb3J0IFJxIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGNvdW50OiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgdGltZTogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBvbmU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0d286IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0aHJlZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZvdXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmaXZlOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBsaXN0RGF0YTogYW55O1xyXG4gICAgc2VsZkRhdGE6IGFueTtcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLmNvdW50LnN0cmluZyA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnRvdGFsO1xyXG4gICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSA+IDEwKXtcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWVhbl9UaW1lID0gKHBhcnNlSW50KE1hdGgucmFuZG9tKCkqMTArXCJcIikrNSkvMTBcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50aW1lLnN0cmluZyA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSArIFwic1wiO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGZEYXRhID0gbnVsbDtcclxuICAgICAgICB0aGlzLm9uZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnR3by5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRocmVlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZm91ci5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZpdmUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgICAgdGhpcy5nZXRSYW5rKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG5cclxuICAgIHN1Y2Nlc3MoZGF0YSl7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBiYWNrKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiUmFua1NjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGFnYWluKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFJhbmsoKXtcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwicGFnZVwiOjEsXHJcbiAgICAgICAgICAgIFwicGFnZVNpemVcIjoxMDBcclxuICAgICAgICB9OyBcclxuICAgICAgICBIdHRwVXRpbC5yYW5rRGF0YSgyLHRoaXMuZ2V0UmFua0RhdGEuYmluZCh0aGlzKSxwb3N0RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSl7XHJcbiAgICAgICAgaWYoZGF0YSl7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGEgPSBkYXRhLmRhdGEubGlzdDtcclxuICAgICAgICAgICAgdGhpcy5zZWxmRGF0YSA9IGRhdGEuZGF0YS5pbmZvO1xyXG4gICAgICAgICAgICBsZXQgcmFua0RhdGEgPSBbXTtcclxuICAgICAgICAgICAgbGV0IHNlbGYgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYodGhpcy5zZWxmRGF0YS5uaWNrTmFtZS5sZW5ndGggPiA0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEubmlja05hbWU9IHRoaXMuc2VsZkRhdGEubmlja05hbWUuc3Vic3RyaW5nKDAsNCkgKyBcIi4uLlwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLnRvdGFsU3VuQ291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGljKHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7aTw9dGhpcy5saXN0RGF0YS5sZW5ndGgtMTtpKyspe1xyXG4gICAgICAgICAgICAgICAgcmFua0RhdGEucHVzaCh7cmFuazooaSsxKSwgbmFtZTp0aGlzLmxpc3REYXRhW2ldLm5pY2tOYW1lLCB0b3RhbDp0aGlzLmxpc3REYXRhW2ldLnRvdGFsU3VuQ291bnQsIHBpYzp0aGlzLmxpc3REYXRhW2ldLnBpY30pO1xyXG4gICAgICAgICAgICAgICAgaWYoR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkID09IHRoaXMubGlzdERhdGFbaV0udXNlcklkKXtcclxuICAgICAgICAgICAgICAgICAgICBzZWxmID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9KGkrMSkgKyBcIlwiOyBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGkgPT0gKHRoaXMubGlzdERhdGEubGVuZ3RoLTEpICYmIHNlbGYgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihpPDUpIHRoaXMuc2V0UmFuayhpLHRoaXMubGlzdERhdGFbaV0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRSYW5rKG51bSxkYXRhKXtcclxuICAgICAgICB2YXIgaGl0Tm9kZSA9IG51bGw7XHJcbiAgICAgICAgaWYobnVtID09IDApe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYobnVtID09IDEpe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy50d287XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYobnVtID09IDIpe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy50aHJlZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gMyl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLmZvdXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYobnVtID09IDQpe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy5maXZlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihoaXROb2RlKXtcclxuICAgICAgICAgICAgaGl0Tm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZihkYXRhLm5pY2tOYW1lLmxlbmd0aCA+IDQpe1xyXG4gICAgICAgICAgICAgICAgZGF0YS5uaWNrTmFtZT0gZGF0YS5uaWNrTmFtZS5zdWJzdHJpbmcoMCw0KSArIFwiLi4uXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwibmFtZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IGRhdGEubmlja05hbWU7XHJcbiAgICAgICAgICAgIGhpdE5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbFwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IGRhdGEudG90YWxTdW5Db3VudDtcclxuICAgICAgICAgICAgdGhpcy5zZXRQaWMoaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksZGF0YS5waWMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFBpYyhub2RlLHBpYyl7XHJcbiAgICAgICAgbm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBsZXQgdXJsID0gcGljO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBmZXRjaCh1cmwpXHJcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1MZW5ndGgnKTtcclxuICAgICAgICAgICAgfSlcclxuICAgIFxyXG4gICAgICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5qcGcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -839,7 +1167,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js'; + var __filename = 'preview-scripts/assets/Script/tool/DynamicAtlasManager.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -847,26 +1175,69 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event'); -// migration/use_v2.1-2.2.1_cc.Toggle_event.js +cc._RF.push(module, '3ffacOneORCf6Bc1LFhTCCQ', 'DynamicAtlasManager'); +// Script/tool/DynamicAtlasManager.js "use strict"; -/* - * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version. - * You do not need to manually add this script in any other project. - * If you don't use cc.Toggle in your project, you can delete this script directly. - * If your project is hosted in VCS such as git, submit this script together. - * - * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程, - * 你无需在任何其它项目中手动添加此脚本。 - * 如果你的项目中没用到 Toggle,可直接删除该脚本。 - * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 - */ -if (cc.Toggle) { - // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code - // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 - cc.Toggle._triggerEventInScript_isChecked = true; +cc.Class({ + "extends": cc.Component, + properties: {}, + onLoad: function onLoad() { + cc.dynamicAtlasManager.enabled = false; + } +}); + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFx0b29sXFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxTQURQO0FBR0xDLEVBQUFBLFVBQVUsRUFBRSxFQUhQO0FBTUxDLEVBQUFBLE1BTkssb0JBTUs7QUFDTkosSUFBQUEsRUFBRSxDQUFDSyxtQkFBSCxDQUF1QkMsT0FBdkIsR0FBaUMsS0FBakM7QUFDSDtBQVJJLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICB9LFxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZHluYW1pY0F0bGFzTWFuYWdlci5lbmFibGVkID0gZmFsc2U7XHJcbiAgICB9LFxyXG59KTtcclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/test.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'f7f5dfmKidObZiMLtuBdAiq', 'test'); +// Script/test.ts + +if (this.level == 1) { + var data = { x: -200, y: -380, time: 0, timeCount: 0 }; + var timeCount = this.timeCount + (0.8 - this.calculateDistance(this.ball.x, this.ball.y, -200, -380)); + var time = this.calculateDistance(this.ball.x, this.ball.y, -200, -380) + timeCount; + data = { x: -200, y: -380, time: time, timeCount: timeCount }; + this.now_Array.push(data); + timeCount = this.timeCount + (0.8 - this.calculateDistance(this.ball.x, this.ball.y, -250, -300)); + time = this.calculateDistance(this.now_Array[this.now_Array.length - 1].x, this.now_Array[this.now_Array.length - 1].y, -250, -300) + timeCount; + data = { x: -250, y: -300, time: time, timeCount: timeCount }; + this.now_Array.push(data); + timeCount = this.timeCount + (0.8 - this.calculateDistance(this.ball.x, this.ball.y, -300, 500)); + time = this.calculateDistance(this.now_Array[this.now_Array.length - 1].x, this.now_Array[this.now_Array.length - 1].y, -300, 500) + timeCount; + data = { x: -300, y: 500, time: time, timeCount: timeCount }; + this.now_Array.push(data); + timeCount = this.timeCount + (0.8 - this.calculateDistance(this.ball.x, this.ball.y, 208, 280)); + time = this.calculateDistance(this.now_Array[this.now_Array.length - 1].x, this.now_Array[this.now_Array.length - 1].y, 208, 280) + timeCount; + data = { x: 208, y: 280, time: time, timeCount: timeCount }; + this.now_Array.push(data); + timeCount = this.timeCount + (0.8 - this.calculateDistance(this.ball.x, this.ball.y, 208, -280)); + time = this.calculateDistance(this.now_Array[this.now_Array.length - 1].x, this.now_Array[this.now_Array.length - 1].y, 208, -280) + timeCount; + data = { x: 208, y: -280, time: time, timeCount: timeCount }; + this.now_Array.push(data); } cc._RF.pop(); @@ -880,7 +1251,3357 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQVAsRUFBZTtBQUNYO0FBQ0E7QUFDQUQsRUFBQUEsRUFBRSxDQUFDQyxNQUFILENBQVVDLCtCQUFWLEdBQTRDLElBQTVDO0FBQ0giLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+aIkO+8jOS7heeUqOS6juWFvOWuuSB2Mi4xLjAgfiAyLjIuMSDniYjmnKznmoTlt6XnqIvvvIxcclxuICog5L2g5peg6ZyA5Zyo5Lu75L2V5YW25a6D6aG555uu5Lit5omL5Yqo5re75Yqg5q2k6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruS4reayoeeUqOWIsCBUb2dnbGXvvIzlj6/nm7TmjqXliKDpmaTor6XohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5pyJ5omY566h5LqOIGdpdCDnrYnniYjmnKzlupPvvIzor7flsIbmraTohJrmnKzkuIDlubbkuIrkvKDjgIJcclxuICovXHJcblxyXG5pZiAoY2MuVG9nZ2xlKSB7XHJcbiAgICAvLyBXaGV0aGVyIHRvIHRyaWdnZXIgJ3RvZ2dsZScgYW5kICdjaGVja0V2ZW50cycgZXZlbnRzIHdoZW4gbW9kaWZ5aW5nICd0b2dnbGUuaXNDaGVja2VkJyBpbiB0aGUgY29kZVxyXG4gICAgLy8g5Zyo5Luj56CB5Lit5L+u5pS5ICd0b2dnbGUuaXNDaGVja2VkJyDml7bmmK/lkKbop6blj5EgJ3RvZ2dsZScg5LiOICdjaGVja0V2ZW50cycg5LqL5Lu2XHJcbiAgICBjYy5Ub2dnbGUuX3RyaWdnZXJFdmVudEluU2NyaXB0X2lzQ2hlY2tlZCA9IHRydWU7XHJcbn1cclxuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFx0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUM7SUFDZixJQUFJLElBQUksR0FBRyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUM7SUFDOUMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLFNBQVMsQ0FBQztJQUMvRSxJQUFJLEdBQUcsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFCLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0YsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFHLENBQUMsR0FBQyxTQUFTLENBQUM7SUFDbkUsSUFBSSxHQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxQixTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RixJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNuRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxHQUFHLENBQUMsR0FBQyxTQUFTLENBQUM7SUFDbEUsSUFBSSxHQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUIsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNGLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ25FLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLENBQUMsR0FBQyxTQUFTLENBQUM7SUFDakUsSUFBSSxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFCLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVGLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ25FLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLFNBQVMsQ0FBQztJQUNsRSxJQUFJLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUM3QiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImlmKHRoaXMubGV2ZWwgPT0gMSl7XHJcbiAgICBsZXQgZGF0YSA9IHt4Oi0yMDAseTotMzgwLHRpbWU6MCx0aW1lQ291bnQ6MH07XHJcbiAgICBsZXQgdGltZUNvdW50ID0gdGhpcy50aW1lQ291bnQgKyAoMC44LXRoaXMuY2FsY3VsYXRlRGlzdGFuY2UodGhpcy5iYWxsLngsdGhpcy5iYWxsLnksLTIwMCwtMzgwKSk7XHJcbiAgICBsZXQgdGltZSA9IHRoaXMuY2FsY3VsYXRlRGlzdGFuY2UodGhpcy5iYWxsLngsdGhpcy5iYWxsLnksLTIwMCwtMzgwKSt0aW1lQ291bnQ7XHJcbiAgICBkYXRhID0ge3g6LTIwMCx5Oi0zODAsdGltZTp0aW1lLHRpbWVDb3VudDp0aW1lQ291bnR9O1xyXG4gICAgdGhpcy5ub3dfQXJyYXkucHVzaChkYXRhKTtcclxuXHJcbiAgICB0aW1lQ291bnQgPSB0aGlzLnRpbWVDb3VudCArICgwLjgtdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLmJhbGwueCx0aGlzLmJhbGwueSwtMjUwLC0zMDApKTtcclxuICAgIHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS54LFxyXG4gICAgICAgIHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS55LC0yNTAsLTMwMCkrdGltZUNvdW50O1xyXG4gICAgZGF0YSA9IHt4Oi0yNTAseTotMzAwLHRpbWU6dGltZSx0aW1lQ291bnQ6dGltZUNvdW50fTtcclxuICAgIHRoaXMubm93X0FycmF5LnB1c2goZGF0YSk7XHJcblxyXG4gICAgdGltZUNvdW50ID0gdGhpcy50aW1lQ291bnQgKyAoMC44LXRoaXMuY2FsY3VsYXRlRGlzdGFuY2UodGhpcy5iYWxsLngsdGhpcy5iYWxsLnksLTMwMCw1MDApKTtcclxuICAgIHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS54LFxyXG4gICAgICAgIHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS55LC0zMDAsNTAwKSt0aW1lQ291bnQ7XHJcbiAgICBkYXRhID0ge3g6LTMwMCx5OjUwMCx0aW1lOnRpbWUsdGltZUNvdW50OnRpbWVDb3VudH07XHJcbiAgICB0aGlzLm5vd19BcnJheS5wdXNoKGRhdGEpO1xyXG5cclxuICAgIHRpbWVDb3VudCA9IHRoaXMudGltZUNvdW50ICsgKDAuOC10aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55LDIwOCwyODApKTtcclxuICAgIHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS54LFxyXG4gICAgICAgIHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS55LDIwOCwyODApK3RpbWVDb3VudDtcclxuICAgIGRhdGEgPSB7eDoyMDgseToyODAsdGltZTp0aW1lLHRpbWVDb3VudDp0aW1lQ291bnR9O1xyXG4gICAgdGhpcy5ub3dfQXJyYXkucHVzaChkYXRhKTtcclxuXHJcbiAgICB0aW1lQ291bnQgPSB0aGlzLnRpbWVDb3VudCArICgwLjgtdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLmJhbGwueCx0aGlzLmJhbGwueSwyMDgsLTI4MCkpO1xyXG4gICAgdGltZSA9IHRoaXMuY2FsY3VsYXRlRGlzdGFuY2UodGhpcy5ub3dfQXJyYXlbdGhpcy5ub3dfQXJyYXkubGVuZ3RoLTFdLngsXHJcbiAgICAgICAgdGhpcy5ub3dfQXJyYXlbdGhpcy5ub3dfQXJyYXkubGVuZ3RoLTFdLnksMjA4LC0yODApK3RpbWVDb3VudDtcclxuICAgIGRhdGEgPSB7eDoyMDgseTotMjgwLHRpbWU6dGltZSx0aW1lQ291bnQ6dGltZUNvdW50fTtcclxuICAgIHRoaXMubm93X0FycmF5LnB1c2goZGF0YSk7XHJcbn0iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Sun.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '4be67sdkexCyqLl0NHd9N1f', 'Sun'); +// Script/Sun.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Notification_1 = require("./Notification"); +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + return _super !== null && _super.apply(this, arguments) || this; + } + // LIFE-CYCLE CALLBACKS: + // onLoad () {} + NewClass.prototype.start = function () { + this.touch = true; + this.move = false; + this._color = 0; + this._speed = 0; + var shan = this.node.getChildByName("shan"); + cc.tween(shan) + .repeatForever(cc.tween() + .to(1, { opacity: 0, scale: 0.5, }) + .delay(0.2) + .to(1, { opacity: 255, scale: 1.2 }) + .delay(0.5)) + .start(); + }; + NewClass.prototype.init = function (_id, color, speed, repeat) { + this.id_Number = _id; + this._color = color; + this._speed = speed; + this._repeat = repeat; + }; + NewClass.prototype.showNumber = function (type) { + this.node.getChildByName("number").active = type; + if (type == true) + this.node.getChildByName("number").getComponent(cc.Label).string = this.id_Number + ""; + }; + NewClass.prototype.clickBtn = function () { + var temp = this.node.parent.parent.name; + // console.log(temp,this.move,this.touch); + if (this.move == false && this.touch == true) { + if (this.node.parent.parent.name == "GameNode") { + if (this.node.parent.parent.getComponent("GameManager").begin == true) { + cc.tween(this.node.getChildByName("action")) + .to(0.5, { opacity: 0, scale: 1.8 }) + .start(); + cc.tween(this.node) + .to(0.3, { scale: 1.3 }) + .to(0.3, { scale: 1 }) + .start(); + this.touch = false; + this.node.zIndex = -1; + Notification_1.Notification.emit("clickSun", this.id_Number); + } + } + else { + this.touch = false; + this.node.zIndex = -1; + Notification_1.Notification.emit("clickSun", this.id_Number); + } + } + }; + NewClass.prototype.clickBtn2 = function () { + if (this.touch == true && this.node.parent.parent.getComponent("GuideManager").begin == true) { + this.touch = false; + this.node.zIndex = -1; + Notification_1.Notification.emit("clickSun", this.id_Number); + } + }; + NewClass.prototype.update = function (dt) { + }; + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTdW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUUsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUMsK0NBQThDO0FBRzlDO0lBQXNDLDRCQUFZO0lBQWxEOztJQWlGQSxDQUFDO0lBekVHLHdCQUF3QjtJQUV4QixlQUFlO0lBRWYsd0JBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ2IsYUFBYSxDQUNWLEVBQUUsQ0FBQyxLQUFLLEVBQUU7YUFDVCxFQUFFLENBQUMsQ0FBQyxFQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsR0FBRyxHQUFFLENBQUM7YUFDNUIsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLEVBQUUsQ0FBQyxDQUFDLEVBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxHQUFHLEVBQUMsQ0FBQzthQUM3QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQ2Q7YUFDQSxLQUFLLEVBQUUsQ0FBQztJQUViLENBQUM7SUFFRCx1QkFBSSxHQUFKLFVBQUssR0FBRyxFQUFDLEtBQUssRUFB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QUFDO0lBaEZnQixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBaUY1QjtJQUFELGVBQUM7Q0FqRkQsQUFpRkMsQ0FqRnFDLEVBQUUsQ0FBQyxTQUFTLEdBaUZqRDtrQkFqRm9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gJy4vR2FtZU1hbmFnZXInO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuL05vdGlmaWNhdGlvbic7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgaWRfTnVtYmVyOm51bWJlclxyXG4gICAgX3NwZWVkOm51bWJlclxyXG4gICAgX2NvbG9yOm51bWJlclxyXG4gICAgdG91Y2g6Ym9vbGVhblxyXG4gICAgX3JlcGVhdDpib29sZWFuXHJcbiAgICBtb3ZlOmJvb2xlYW5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLnRvdWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1vdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9jb2xvciA9IDA7XHJcbiAgICAgICAgdGhpcy5fc3BlZWQgPSAwO1xyXG4gICAgICAgIHZhciBzaGFuID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwic2hhblwiKTtcclxuXHJcbiAgICAgICAgY2MudHdlZW4oc2hhbilcclxuICAgICAgICAucmVwZWF0Rm9yZXZlcihcclxuICAgICAgICAgICAgY2MudHdlZW4oKVxyXG4gICAgICAgICAgICAudG8oMSx7b3BhY2l0eTowLHNjYWxlOjAuNSx9KVxyXG4gICAgICAgICAgICAuZGVsYXkoMC4yKVxyXG4gICAgICAgICAgICAudG8oMSx7b3BhY2l0eToyNTUsc2NhbGU6MS4yfSlcclxuICAgICAgICAgICAgLmRlbGF5KDAuNSlcclxuICAgICAgICApXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoX2lkLGNvbG9yLHNwZWVkLHJlcGVhdCl7XHJcbiAgICAgICAgdGhpcy5pZF9OdW1iZXIgID0gX2lkO1xyXG4gICAgICAgIHRoaXMuX2NvbG9yID0gY29sb3I7XHJcbiAgICAgICAgdGhpcy5fc3BlZWQgPSBzcGVlZDtcclxuICAgICAgICB0aGlzLl9yZXBlYXQgPSByZXBlYXQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd051bWJlcih0eXBlKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1iZXJcIikuYWN0aXZlID0gdHlwZTtcclxuICAgICAgICBpZih0eXBlID09IHRydWUpXHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bWJlclwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuaWRfTnVtYmVyICsgXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBjbGlja0J0bigpe1xyXG4gICAgICAgIHZhciB0ZW1wID0gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQubmFtZTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0ZW1wLHRoaXMubW92ZSx0aGlzLnRvdWNoKTtcclxuICAgICAgICBpZiggdGhpcy5tb3ZlID09IGZhbHNlICYmIHRoaXMudG91Y2ggPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQucGFyZW50Lm5hbWUgPT0gXCJHYW1lTm9kZVwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpLmJlZ2luID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImFjdGlvblwiKSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC41LHtvcGFjaXR5OjAsc2NhbGU6MS44fSlcclxuICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMyx7c2NhbGU6MS4zfSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC4zLHtzY2FsZToxfSlcclxuICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnpJbmRleCA9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbi5lbWl0KFwiY2xpY2tTdW5cIix0aGlzLmlkX051bWJlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMudG91Y2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSAtMTtcclxuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbi5lbWl0KFwiY2xpY2tTdW5cIix0aGlzLmlkX051bWJlcik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrQnRuMigpe1xyXG4gICAgICAgIGlmKCB0aGlzLnRvdWNoID09IHRydWUgJiYgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiR3VpZGVNYW5hZ2VyXCIpLmJlZ2luID09IHRydWUpe1xyXG4gICAgICAgICAgICB0aGlzLnRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSAtMTtcclxuICAgICAgICAgICAgTm90aWZpY2F0aW9uLmVtaXQoXCJjbGlja1N1blwiLHRoaXMuaWRfTnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG4gICAgfVxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Helloworld.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'e1b90/rohdEk4SdmmEZANaD', 'Helloworld'); +// Script/Helloworld.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var GameData_1 = require("./GameData"); +var List_1 = require("./ListView/List"); +var serverAPI_1 = require("./crypto/serverAPI"); +// import { apiSign } from "./crypto/sign"; +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Helloworld = /** @class */ (function (_super) { + __extends(Helloworld, _super); + function Helloworld() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.Player = null; + _this.selfNode = null; + _this.phone = null; + return _this; + } + Helloworld.prototype.onLoad = function () { + this.Player.getChildByName("rank").active = false; + this.rankList = cc.find("ScrollView", this.node).getComponent(List_1.default); + this.listData = []; + this.selfData = null; + this.rankNumber = 100; + this.rankTotal = 100; + this.selfNode.opacity = 0; + }; + Helloworld.prototype.start = function () { + this.Player.active = false; + this.getRank(); + }; + Helloworld.prototype.getRankData = function (data) { + if (data) { + // console.log(data); + this.listData = data.data.list; + this.selfData = data.data.info; + var rankData = []; + var self = false; + for (var i = 0; i <= this.listData.length - 1; i++) { + rankData.push({ rank: (i + 1), name: this.listData[i].nickName, total: this.listData[i].totalSunCount, pic: this.listData[i].pic }); + if (GameData_1.default._instance.GM_INFO.userId == this.listData[i].userId) { + self = true; + this.rankNumber = i; + this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = (i + 1) + ""; + } + if (i == (this.listData.length - 1) && self == false) { + this.rankNumber = i; + this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = "99+"; + } + } + this.rankList.setData(rankData); + if (this.selfData.nickName.length > 6) { + this.selfData.nickName = this.selfData.nickName.substring(0, 6) + "..."; + } + this.selfNode.getChildByName("nameLab").getComponent(cc.Label).string = this.selfData.nickName; + this.selfNode.getChildByName("totalLab").getComponent(cc.Label).string = this.selfData.totalSunCount; + this.setPic(this.selfData.pic); + this.setPic2(this.selfData.pic); + if (this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string == "1") { + this.selfNode.getChildByName("rank").getChildByName("one").active = true; + } + else if (this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string == "2") { + this.selfNode.getChildByName("rank").getChildByName("two").active = true; + } + else if (this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string == "3") { + this.selfNode.getChildByName("rank").getChildByName("three").active = true; + } + else { + // this.selfNode.getChildByName("four").active = true; + } + this.selfNode.opacity = 255; + if (this.selfData.totalSunCount == 0) + this.selfNode.opacity = 0; + } + }; + Helloworld.prototype.backClick = function () { + cc.director.loadScene("LoadScene"); + }; + Helloworld.prototype.playerAction = function () { + var _this = this; + //-254 377 210 453 + this.Player.getChildByName("rank").active = false; + var time = 1; + this.tween = cc.tween(this.Player) + .to(2, { position: cc.v3(210, 453, 0) }) + .call(function () { + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }) + .start(); + time = (this.listData.length - this.rankNumber) / this.listData.length; + if (this.listData.length >= 99) { + if (this.rankNumber >= 99) { + time = (Math.random() * 49 + 1) / 100; + var matchId = cc.sys.localStorage.getItem("matchNumber"); + if (matchId == null || matchId == undefined) { + time = 0; + } + } + } + else { + } + setTimeout(function () { + if (_this.tween) + _this.tween.stop(); + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }, time * 2000); + }; + Helloworld.prototype.getRank = function () { + var postData = { + "page": 1, + "pageSize": 100 + }; + serverAPI_1.default.rankData(2, this.getRankData.bind(this), postData); + }; + Helloworld.prototype.setPic = function (pic) { + var _this = this; + this.phone.node.parent.getChildByName("icon").active = false; + this.phone.node.active = false; + var url = pic; + fetch(url) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + if (errNo == "5093") { + _this.phone.node.parent.getChildByName("icon").active = true; + } + }) + .catch(function (error) { + console.error('Error fetching X-Info:', error); + }); + var self = this; + cc.assetManager.loadRemote(url, { ext: '.jpg' }, function (err, texture) { + if (texture) { + _this.phone.node.active = true; + self.phone.spriteFrame = new cc.SpriteFrame(texture); + } + else { + console.log(err, texture); + } + }); + }; + Helloworld.prototype.setPic2 = function (pic) { + var _this = this; + this.Player.active = true; + this.Player.opacity = 0; + this.Player.getChildByName("mask").getChildByName("icon").active = false; + this.Player.getChildByName("mask").getChildByName("phone").active = false; + var url = pic; + fetch(url) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + if (errNo == "5093") { + _this.Player.getChildByName("mask").getChildByName("icon").active = true; + } + }) + .catch(function (error) { + console.error('Error fetching X-Info:', error); + }); + var self = this; + cc.assetManager.loadRemote(url, { ext: '.jpg' }, function (err, texture) { + if (texture) { + _this.Player.opacity = 255; + _this.Player.getChildByName("mask").getChildByName("icon").active = false; + _this.Player.getChildByName("mask").getChildByName("phone").active = true; + _this.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) + .spriteFrame = new cc.SpriteFrame(texture); + setTimeout(function () { + _this.playerAction(); + }, 500); + // console.log("设置头像成功",err); + } + else { + _this.Player.opacity = 255; + // console.log("设置头像失败",url); + _this.Player.getChildByName("mask").getChildByName("icon").active = true; + console.log(err, texture); + setTimeout(function () { + _this.playerAction(); + }, 500); + } + }); + }; + __decorate([ + property(cc.Node) + ], Helloworld.prototype, "Player", void 0); + __decorate([ + property(cc.Node) + ], Helloworld.prototype, "selfNode", void 0); + __decorate([ + property(cc.Sprite) + ], Helloworld.prototype, "phone", void 0); + Helloworld = __decorate([ + ccclass + ], Helloworld); + return Helloworld; +}(cc.Component)); +exports.default = Helloworld; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxIZWxsb3dvcmxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUFrQztBQUNsQyx3Q0FBbUM7QUFDbkMsZ0RBQTBDO0FBQzFDLDJDQUEyQztBQUVyQyxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUF3Qyw4QkFBWTtJQUFwRDtRQUFBLHFFQXNNQztRQW5NRyxZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGNBQVEsR0FBWSxJQUFJLENBQUM7UUFHekIsV0FBSyxHQUFjLElBQUksQ0FBQzs7SUE2TDVCLENBQUM7SUFwTEcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLGNBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUUsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsMEJBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELGdDQUFXLEdBQVgsVUFBWSxJQUFJO1FBQ1osSUFBRyxJQUFJ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IjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR2FtZURhdGEgZnJvbSBcIi4vR2FtZURhdGFcIjtcclxuaW1wb3J0IExpc3QgZnJvbSBcIi4vTGlzdFZpZXcvTGlzdFwiO1xyXG5pbXBvcnQgSHR0cFV0aWwgZnJvbSBcIi4vY3J5cHRvL3NlcnZlckFQSVwiO1xyXG4vLyBpbXBvcnQgeyBhcGlTaWduIH0gZnJvbSBcIi4vY3J5cHRvL3NpZ25cIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZWxsb3dvcmxkIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIFBsYXllcjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBzZWxmTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZSlcclxuICAgIHBob25lOiBjYy5TcHJpdGUgPSBudWxsO1xyXG5cclxuICAgIHByaXZhdGUgcmFua0xpc3Q6IExpc3Q7ICAgICAgICAgLy/mjpLooYzmppxcclxuICAgIHR3ZWVuOiBjYy5Ud2VlbjxjYy5Ob2RlPjtcclxuICAgIGxpc3REYXRhOiBhbnk7XHJcbiAgICBzZWxmRGF0YTogYW55O1xyXG4gICAgcmFua051bWJlcjogbnVtYmVyO1xyXG4gICAgcmFua1RvdGFsOiBudW1iZXI7XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJhbmtMaXN0ID0gY2MuZmluZChcIlNjcm9sbFZpZXdcIiwgdGhpcy5ub2RlKS5nZXRDb21wb25lbnQoTGlzdCk7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZkRhdGEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmFua051bWJlciA9IDEwMDtcclxuICAgICAgICB0aGlzLnJhbmtUb3RhbD0gMTAwO1xyXG4gICAgICAgIHRoaXMuc2VsZk5vZGUub3BhY2l0eSA9IDA7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YSA9IGRhdGEuZGF0YS5saXN0O1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgICAgIGxldCByYW5rRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgc2VsZiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDtpPD10aGlzLmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgICAgICByYW5rRGF0YS5wdXNoKHtyYW5rOihpKzEpLCBuYW1lOnRoaXMubGlzdERhdGFbaV0ubmlja05hbWUsIHRvdGFsOnRoaXMubGlzdERhdGFbaV0udG90YWxTdW5Db3VudCwgcGljOnRoaXMubGlzdERhdGFbaV0ucGljfSk7XHJcbiAgICAgICAgICAgICAgICBpZihHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPT0gdGhpcy5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPShpKzEpICsgXCJcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihpID09ICh0aGlzLmxpc3REYXRhLmxlbmd0aC0xKSAmJiBzZWxmID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmtOdW1iZXIgPSBpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yYW5rTGlzdC5zZXREYXRhKHJhbmtEYXRhKTtcclxuICAgICAgICAgICAgaWYodGhpcy5zZWxmRGF0YS5uaWNrTmFtZS5sZW5ndGggPiA2KXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEubmlja05hbWU9IHRoaXMuc2VsZkRhdGEubmlja05hbWUuc3Vic3RyaW5nKDAsNikgKyBcIi4uLlwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLnRvdGFsU3VuQ291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGljKHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRQaWMyKHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgaWYodGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPT0gXCIxXCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJvbmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID09IFwiMlwiKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZih0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua0xhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9PSBcIjNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcInRocmVlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJmb3VyXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICBpZih0aGlzLnNlbGZEYXRhLnRvdGFsU3VuQ291bnQgPT0gMCkgdGhpcy5zZWxmTm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBiYWNrQ2xpY2soKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcGxheWVyQWN0aW9uKCl7XHJcbiAgICAgICAgLy8tMjU0IDM3NyAgMjEwIDQ1M1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgbGV0IHRpbWUgPSAxO1xyXG4gICAgICAgIHRoaXMudHdlZW4gPSBjYy50d2Vlbih0aGlzLlBsYXllcilcclxuICAgICAgICAudG8oMix7cG9zaXRpb246Y2MudjMoMjEwLDQ1MywwKX0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1iZXJcIilcclxuICAgICAgICAgICAgLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gIHBhcnNlSW50KHRpbWUqMTAwICsgXCJcIikgKyBcIiVcIjtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIHRpbWUgPSAodGhpcy5saXN0RGF0YS5sZW5ndGggLSB0aGlzLnJhbmtOdW1iZXIpL3RoaXMubGlzdERhdGEubGVuZ3RoO1xyXG4gICAgICAgIGlmKHRoaXMubGlzdERhdGEubGVuZ3RoID49IDk5KXtcclxuICAgICAgICAgICAgaWYodGhpcy5yYW5rTnVtYmVyID49IDk5KXtcclxuICAgICAgICAgICAgICAgIHRpbWUgPSAoTWF0aC5yYW5kb20oKSo0OSsxKS8xMDBcclxuICAgICAgICAgICAgICAgIHZhciBtYXRjaElkID0gY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibWF0Y2hOdW1iZXJcIik7XHJcbiAgICAgICAgICAgICAgICBpZihtYXRjaElkID09IG51bGwgfHwgbWF0Y2hJZCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpbWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgXHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLnR3ZWVuKXRoaXMudHdlZW4uc3RvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwibnVtYmVyXCIpXHJcbiAgICAgICAgICAgIC5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9ICBwYXJzZUludCh0aW1lKjEwMCArIFwiXCIpICsgXCIlXCI7XHJcbiAgICAgICAgfSwgdGltZSoyMDAwKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmFuaygpe1xyXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcclxuICAgICAgICAgICAgXCJwYWdlXCI6MSxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOjEwMFxyXG4gICAgICAgIH07IFxyXG4gICAgICAgIEh0dHBVdGlsLnJhbmtEYXRhKDIsdGhpcy5nZXRSYW5rRGF0YS5iaW5kKHRoaXMpLHBvc3REYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0UGljKHBpYyl7XHJcbiAgICAgICAgdGhpcy5waG9uZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5waG9uZS5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgZmV0Y2godXJsKVxyXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBob25lLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBYLUluZm86JywgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5qcGcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMucGhvbmUubm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5waG9uZS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyLHRleHR1cmUpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRQaWMyKHBpYyl7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLlBsYXllci5vcGFjaXR5ID0gMDtcclxuICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcInBob25lXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgZmV0Y2godXJsKVxyXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIC50aGVuKGVyck5vID0+IHtcclxuICAgICAgICAgICAgaWYoZXJyTm8gPT0gXCI1MDkzXCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBYLUluZm86JywgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5qcGcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuUGxheWVyLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcInBob25lXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpXHJcbiAgICAgICAgICAgICAgICAuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXllckFjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6K6+572u5aS05YOP5oiQ5YqfXCIsZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6K6+572u5aS05YOP5aSx6LSlXCIsdXJsKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5ZXJBY3Rpb24oKTtcclxuICAgICAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/BallAudioManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'bd9f78XOD5PmLTjk2rLYBiz', 'BallAudioManager'); +// Script/BallAudioManager.js + +"use strict"; + +cc.Class({ + "extends": cc.Component, + properties: { + //背景音乐 + audioGameBgm0: { + "default": null, + type: cc.AudioClip + }, + // 按钮点击 + audioButtonClick: { + "default": null, + type: cc.AudioClip + }, + // 报警音效 + audioWarning: { + "default": null, + type: cc.AudioClip + }, + //游戏开始音效 + audioWin: { + "default": null, + type: cc.AudioClip + }, + reward: false, + finish: false, + rewardCount: 0 + }, + ctor: function ctor() { + this.mAudioMap = {}; + /** + * 默认音量大小 + * @type {number} + */ + + this.bgMusicVolume = 0.1; + this.effectMusicVolume = 1; + this.mMusicSwitch = 1; + this.mEffectSwitch = 1; + }, + play: function play(audioSource, loop, callback, isBgMusic) { + if (isBgMusic && !this.mMusicSwitch) return; + if (!isBgMusic && !this.mEffectSwitch) return; + var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume; + + if (cc.sys.isBrowser) { + if (audioSource == this.brickSound) { + volume = 0.1; + } + + var context = cc.audioEngine.play(audioSource, loop, volume); + + if (callback) { + cc.audioEngine.setFinishCallback(context, function () { + callback.call(this); + }.bind(this)); + } // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src); + + + this.mAudioMap[audioSource] = context; + return audioSource; + } else { + var context = wx.createInnerAudioContext(); + context.autoplay = true; + context.loop = loop; + context.obeyMuteSwitch = true; + context.volume = volume; + + if (callback) { + context.onEnded(function () { + callback.call(this); + }.bind(this)); + } else { + context.offEnded(); + } // var audioPath = cc.url.raw("resources/BallMaster/sounds" + audioSource.name + ".mp3"); + + + context.src = audioSource.nativeUrl; + context.play(); + this.mAudioMap[audioSource] = context; // cc.wwx.OutPut.log('play audio effect wx: ' + audioSource.nativeUrl); + + return audioSource; + } + }, + save: function save() {// cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch); + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch); + }, + onLoad: function onLoad() { + var _this = this; + + // cc.wwx.Storage.getItem(cc.wwx.Storage.Key_Setting_Music_Volume, function(volume) { + // this.mMusicSwitch = parseInt(volume); + // }.bind(this), 1); + // cc.wwx.Storage.getItem(cc.wwx.Storage.Key_Setting_Effect_Volume, function(volume) { + // this.mEffectSwitch = parseInt(volume); + // }.bind(this), 1); + this.reward = false; + this.finish = false; + this.rewardCount = 0; + window.addEventListener('rewardCanUse', function () { + // 此时激励可用 游戏内部逻辑 + _this.reward = true; + }); + 'undefined' != typeof window['reward'] ? window.dispatchEvent(window['reward']) : ""; + this.preload(); + }, + preload: function preload() { + if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { + return; + } + + var musics = [this.audioGameBgm0]; + musics.forEach(function (path) {// var musicPath = wxDownloader.REMOTE_SERVER_ROOT + path; + // if (musicPath != wxDownloader.REMOTE_SERVER_ROOT && musicPath.endsWith('.mp3')) { + // cc.loader.load(musicPath, function(err, remoteUrl) { + // if (err) { + // cc.error(err.message || err); + // return; + // } + // }); + // } + }); + }, + getAudioMusicSwitch: function getAudioMusicSwitch() { + return this.mMusicSwitch; + }, + getAudioEffectSwitch: function getAudioEffectSwitch() { + return this.mEffectSwitch; + }, + trunAudioSound: function trunAudioSound(on) { + this.switchMusic(on); + this.switchEffect(on); + }, + switchMusic: function switchMusic(on) { + if (this.mMusicSwitch != (on ? 1 : 0)) { + this.mMusicSwitch = 1 - this.mMusicSwitch; // this.save(); + } + + if (on) { + this.playMusicGame(); + } else { + this.stopMusic(); + } + }, + switchEffect: function switchEffect(on) { + if (this.mEffectSwitch != (on ? 1 : 0)) { + this.mEffectSwitch = 1 - this.mEffectSwitch; // this.save(); + } + }, + onHide: function onHide() { + cc.audioEngine.pauseAll(); // if (CC_JSB) { + // } else { + // for (var key in this.mAudioMap) { + // if (key === this.mMusicKey) { + // this.mAudioMap[key].pause(); + // } else { + // this.mAudioMap[key].stop(); + // } + // } + // } + }, + onShow: function onShow() { + cc.audioEngine.resumeAll(); // if (CC_JSB) { + // } else { + // if (!this.mMusicSwitch) return; + // var context = this.mAudioMap[this.mMusicKey]; + // if (context) { + // context.play(); + // } + // } + }, + playMusic: function playMusic(key, callback, loop) { + loop = typeof loop == 'undefined' || loop ? true : false; + this.stopMusic(); + this.mMusicKey = this.play(key, loop, callback, true); + }, + + /** + * 游戏背景音乐 + */ + playMusicGame: function playMusicGame() { + this.playMusic(this.audioGameBgm0); + }, + + /** + * 停止背景音乐播放 + */ + stopMusic: function stopMusic() { + // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey); + var context = this.mAudioMap[this.mMusicKey]; + + if (typeof context != 'undefined') { + if (cc.sys.isBrowser) { + cc.audioEngine.stop(context); + } else { + context.stop(); + } + + cc.audioEngine.stop(context); + } + }, + // 炸弹、火箭爆炸音效 + playBomb: function playBomb() { + return this.play(this.audioBomb, false); + }, + //激光音效 + playJiGuang: function playJiGuang() { + return this.play(this.audioJiGuang, false); + }, + //技能音效 + playItem1: function playItem1() { + return this.play(this.audioItem1, false); + }, + + /* + * 游戏开始音效 + * + */ + playGameStart: function playGameStart() { + return this.play(this.audioGameStart, false); + }, + + /* + * 失败的游戏结束 + */ + playGameOver: function playGameOver() { + return this.play(this.audioGameOver, false); + }, + + /* + * 成功的游戏结束 + */ + playGameResultFailed: function playGameResultFailed() { + return this.play(this.audioGameResultFail, false); + }, + + /* + * 成功的游戏结束 + */ + playGameResultSuccess: function playGameResultSuccess() { + return this.play(this.audioGameResultSuccess, false); + }, + + /** + * 报警的音效 + */ + playWarning: function playWarning() { + return this.play(this.audioWarning, false); + }, + playWin: function playWin() { + return this.play(this.audioWin, false); + }, + + /* + * 方块碰撞的声音 + */ + playBrick: function playBrick() { + return this.play(this.brickSound, false); + }, + //方块破碎的声音 + brickBoom: function brickBoom() { + return this.play(this.audioObj, false); + }, + + /** + * 按钮 + */ + playAudioButton: function playAudioButton() { + return this.play(this.audioButtonClick, false); + }, + playRandomMatch: function playRandomMatch() { + this.playMusic(this.randomMatchSound); + }, + playMatchFoundSound: function playMatchFoundSound() { + this.stopMusic(); + return this.play(this.matchFoundSound, false); + } +}); + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCYWxsQXVkaW9NYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwiYXVkaW9HYW1lQmdtMCIsInR5cGUiLCJBdWRpb0NsaXAiLCJhdWRpb0J1dHRvbkNsaWNrIiwiYXVkaW9XYXJuaW5nIiwiYXVkaW9XaW4iLCJyZXdhcmQiLCJmaW5pc2giLCJyZXdhcmRDb3VudCIsImN0b3IiLCJtQXVkaW9NYXAiLCJiZ011c2ljVm9sdW1lIiwiZWZmZWN0TXVzaWNWb2x1bWUiLCJtTXVzaWNTd2l0Y2giLCJtRWZmZWN0U3dpdGNoIiwicGxheSIsImF1ZGlvU291cmNlIiwibG9vcCIsImNhbGxiYWNrIiwiaXNCZ011c2ljIiwidm9sdW1lIiwic3lzIiwiaXNCcm93c2VyIiwiYnJpY2tTb3VuZCIsImNvbnRleHQiLCJhdWRpb0VuZ2luZSIsInNldEZpbmlzaENhbGxiYWNrIiwiY2FsbCIsImJpbmQiLCJ3eCIsImNyZWF0ZUlubmVyQXVkaW9Db250ZXh0IiwiYXV0b3BsYXkiLCJvYmV5TXV0ZVN3aXRjaCIsIm9uRW5kZWQiLCJvZmZFbmRlZCIsInNyYyIsIm5hdGl2ZVVybCIsInNhdmUiLCJvbkxvYWQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiZGlzcGF0Y2hFdmVudCIsInByZWxvYWQiLCJwbGF0Zm9ybSIsIldFQ0hBVF9HQU1FIiwibXVzaWNzIiwiZm9yRWFjaCIsInBhdGgiLCJnZXRBdWRpb011c2ljU3dpdGNoIiwiZ2V0QXVkaW9FZmZlY3RTd2l0Y2giLCJ0cnVuQXVkaW9Tb3VuZCIsIm9uIiwic3dpdGNoTXVzaWMiLCJzd2l0Y2hFZmZlY3QiLCJwbGF5TXVzaWNHYW1lIiwic3RvcE11c2ljIiwib25IaWRlIiwicGF1c2VBbGwiLCJvblNob3ciLCJyZXN1bWVBbGwiLCJwbGF5TXVzaWMiLCJrZXkiLCJtTXVzaWNLZXkiLCJzdG9wIiwicGxheUJvbWIiLCJhdWRpb0JvbWIiLCJwbGF5SmlHdWFuZyIsImF1ZGlvSmlHdWFuZyIsInBsYXlJdGVtMSIsImF1ZGlvSXRlbTEiLCJwbGF5R2FtZVN0YXJ0IiwiYXVkaW9HYW1lU3RhcnQiLCJwbGF5R2FtZU92ZXIiLCJhdWRpb0dhbWVPdmVyIiwicGxheUdhbWVSZXN1bHRGYWlsZWQiLCJhdWRpb0dhbWVSZXN1bHRGYWlsIiwicGxheUdhbWVSZXN1bHRTdWNjZXNzIiwiYXVkaW9HYW1lUmVzdWx0U3VjY2VzcyIsInBsYXlXYXJuaW5nIiwicGxheVdpbiIsInBsYXlCcmljayIsImJyaWNrQm9vbSIsImF1ZGlvT2JqIiwicGxheUF1ZGlvQnV0dG9uIiwicGxheVJhbmRvbU1hdGNoIiwicmFuZG9tTWF0Y2hTb3VuZCIsInBsYXlNYXRjaEZvdW5kU291bmQiLCJtYXRjaEZvdW5kU291bmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxTQURQO0FBRUxDLEVBQUFBLFVBQVUsRUFBQztBQUNQO0FBQ0FDLElBQUFBLGFBQWEsRUFBQztBQUNWLGlCQUFRLElBREU7QUFFVkMsTUFBQUEsSUFBSSxFQUFDTCxFQUFFLENBQUNNO0FBRkUsS0FGUDtBQU1QO0FBQ0FDLElBQUFBLGdCQUFnQixFQUFDO0FBQ2IsaUJBQVEsSUFESztBQUViRixNQUFBQSxJQUFJLEVBQUNMLEVBQUUsQ0FBQ007QUFGSyxLQVBWO0FBV1A7QUFDQUUsSUFBQUEsWUFBWSxFQUFDO0FBQ1QsaUJBQVEsSUFEQztBQUVUSCxNQUFBQSxJQUFJLEVBQUNMLEVBQUUsQ0FBQ007QUFGQyxLQVpOO0FBaUJQO0FBQ0FHLElBQUFBLFFBQVEsRUFBQztBQUNMLGlCQUFRLElBREg7QUFFTEosTUFBQUEsSUFBSSxFQUFDTCxFQUFFLENBQUNNO0FBRkgsS0FsQkY7QUF1QlBJLElBQUFBLE1BQU0sRUFBRSxLQXZCRDtBQXdCUEMsSUFBQUEsTUFBTSxFQUFFLEtBeEJEO0FBeUJQQyxJQUFBQSxXQUFX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TDtBQUNKO0FBQ0E7QUFDSUMsRUFBQUEscUJBN1FLLG1DQThRTDtBQUNJLFdBQU8sS0FBSzdELElBQUwsQ0FBVSxLQUFLOEQsc0JBQWYsRUFBc0MsS0FBdEMsQ0FBUDtBQUNILEdBaFJJOztBQWlSTDtBQUNKO0FBQ0E7QUFDSUMsRUFBQUEsV0FwUksseUJBcVJMO0FBQ0ksV0FBTyxLQUFLL0QsSUFBTCxDQUFVLEtBQUtYLFlBQWYsRUFBNEIsS0FBNUIsQ0FBUDtBQUVILEdBeFJJO0FBMFJMMkUsRUFBQUEsT0ExUksscUJBMlJMO0FBQ0ksV0FBTyxLQUFLaEUsSUFBTCxDQUFVLEtBQUtWLFFBQWYsRUFBd0IsS0FBeEIsQ0FBUDtBQUNILEdBN1JJOztBQStSTDtBQUNKO0FBQ0E7QUFDSTJFLEVBQUFBLFNBbFNLLHVCQW1TTDtBQUNJLFdBQU8sS0FBS2pFLElBQUwsQ0FBVSxLQUFLUSxVQUFmLEVBQTBCLEtBQTFCLENBQVA7QUFDSCxHQXJTSTtBQXNTTDtBQUNBMEQsRUFBQUEsU0F2U0ssdUJBdVNNO0FBQ1AsV0FBTyxLQUFLbEUsSUFBTCxDQUFVLEtBQUttRSxRQUFmLEVBQXdCLEtBQXhCLENBQVA7QUFDSCxHQXpTSTs7QUEwU0w7QUFDSjtBQUNBO0FBQ0lDLEVBQUFBLGVBN1NLLDZCQTZTYztBQUNmLFdBQU8sS0FBS3BFLElBQUwsQ0FBVSxLQUFLWixnQkFBZixFQUFpQyxLQUFqQyxDQUFQO0FBQ0gsR0EvU0k7QUFpVExpRixFQUFBQSxlQWpUSyw2QkFrVEw7QUFDSSxTQUFLeEIsU0FBTCxDQUFlLEtBQUt5QixnQkFBcEI7QUFDSCxHQXBUSTtBQXFUTEMsRUFBQUEsbUJBclRLLGlDQXNUTDtBQUNJLFNBQUsvQixTQUFMO0FBQ0EsV0FBTyxLQUFLeEMsSUFBTCxDQUFVLEtBQUt3RSxlQUFmLEVBQWdDLEtBQWhDLENBQVA7QUFDSDtBQXpUSSxDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogY2MuQ29tcG9uZW50LFxuICAgIHByb3BlcnRpZXM6e1xuICAgICAgICAvL+iDjOaZr+mfs+S5kFxuICAgICAgICBhdWRpb0dhbWVCZ20wOntcbiAgICAgICAgICAgIGRlZmF1bHQ6bnVsbCxcbiAgICAgICAgICAgIHR5cGU6Y2MuQXVkaW9DbGlwXG4gICAgICAgIH0sXG4gICAgICAgIC8vIOaMiemSrueCueWHu1xuICAgICAgICBhdWRpb0J1dHRvbkNsaWNrOntcbiAgICAgICAgICAgIGRlZmF1bHQ6bnVsbCxcbiAgICAgICAgICAgIHR5cGU6Y2MuQXVkaW9DbGlwXG4gICAgICAgIH0sXG4gICAgICAgIC8vIOaKpeitpumfs+aViFxuICAgICAgICBhdWRpb1dhcm5pbmc6e1xuICAgICAgICAgICAgZGVmYXVsdDpudWxsLFxuICAgICAgICAgICAgdHlwZTpjYy5BdWRpb0NsaXBcbiAgICAgICAgfSxcblxuICAgICAgICAvL+a4uOaIj+W8gOWni+mfs+aViFxuICAgICAgICBhdWRpb1dpbjp7XG4gICAgICAgICAgICBkZWZhdWx0Om51bGwsXG4gICAgICAgICAgICB0eXBlOmNjLkF1ZGlvQ2xpcFxuICAgICAgICB9LFxuXG4gICAgICAgIHJld2FyZDogZmFsc2UsXG4gICAgICAgIGZpbmlzaDogZmFsc2UsXG4gICAgICAgIHJld2FyZENvdW50OiAwXG5cbiAgICB9LFxuICAgIGN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5tQXVkaW9NYXAgPSB7fTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog6buY6K6k6Z+z6YeP5aSn5bCPXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJnTXVzaWNWb2x1bWUgPSAwLjE7XG4gICAgICAgIHRoaXMuZWZmZWN0TXVzaWNWb2x1bWUgPSAxO1xuXG4gICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMTtcbiAgICAgICAgdGhpcy5tRWZmZWN0U3dpdGNoID0gMTtcbiAgICB9LFxuICAgIHBsYXkgOiBmdW5jdGlvbihhdWRpb1NvdXJjZSwgbG9vcCwgY2FsbGJhY2ssIGlzQmdNdXNpYykge1xuICAgICAgICBpZiAoaXNCZ011c2ljICYmICF0aGlzLm1NdXNpY1N3aXRjaCkgcmV0dXJuO1xuICAgICAgICBpZiAoIWlzQmdNdXNpYyAmJiAhdGhpcy5tRWZmZWN0U3dpdGNoKSByZXR1cm47XG5cbiAgICAgICAgdmFyIHZvbHVtZSA9IGlzQmdNdXNpYyA/IHRoaXMuYmdNdXNpY1ZvbHVtZSA6IHRoaXMuZWZmZWN0TXVzaWNWb2x1bWU7XG5cbiAgICAgICAgaWYgKGNjLnN5cy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIGlmKGF1ZGlvU291cmNlID09IHRoaXMuYnJpY2tTb3VuZCl7XG4gICAgICAgICAgICAgICAgdm9sdW1lID0gMC4xO1xuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gY2MuYXVkaW9FbmdpbmUucGxheShhdWRpb1NvdXJjZSwgbG9vcCwgdm9sdW1lKTtcbiAgICAgICAgICAgIGlmIChjYWxsYmFjayl7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RmluaXNoQ2FsbGJhY2soY29udGV4dCwgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY2Mud3d4Lk91dFB1dC5sb2coJ3BsYXkgYXVkaW8gZWZmZWN0IGlzQnJvd3NlcjogJyArIGNvbnRleHQuc3JjKTtcblxuICAgICAgICAgICAgdGhpcy5tQXVkaW9NYXBbYXVkaW9Tb3VyY2VdID0gY29udGV4dDtcbiAgICAgICAgICAgIHJldHVybiBhdWRpb1NvdXJjZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gd3guY3JlYXRlSW5uZXJBdWRpb0NvbnRleHQoKTtcbiAgICAgICAgICAgIGNvbnRleHQuYXV0b3BsYXkgPSB0cnVlO1xuICAgICAgICAgICAgY29udGV4dC5sb29wID0gbG9vcDtcbiAgICAgICAgICAgIGNvbnRleHQub2JleU11dGVTd2l0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgY29udGV4dC52b2x1bWUgPSB2b2x1bWU7XG5cbiAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGNvbnRleHQub25FbmRlZChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9mZkVuZGVkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAgICAgLy8gdmFyIGF1ZGlvUGF0aCA9IGNjLnVybC5yYXcoXCJyZXNvdXJjZXMvQmFsbE1hc3Rlci9zb3VuZHNcIiArIGF1ZGlvU291cmNlLm5hbWUgKyBcIi5tcDNcIik7XG4gICAgICAgICAgICBjb250ZXh0LnNyYyA9IGF1ZGlvU291cmNlLm5hdGl2ZVVybDtcbiAgICAgICAgICAgIGNvbnRleHQucGxheSgpXG4gICAgICAgICAgICB0aGlzLm1BdWRpb01hcFthdWRpb1NvdXJjZV0gPSBjb250ZXh0O1xuICAgICAgICBcbiAgICAgICAgICAgIC8vIGNjLnd3eC5PdXRQdXQubG9nKCdwbGF5IGF1ZGlvIGVmZmVjdCB3eDogJyArIGF1ZGlvU291cmNlLm5hdGl2ZVVybCk7XG4gICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIGF1ZGlvU291cmNlO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIHNhdmU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19NdXNpY19Wb2x1bWUsIHRoaXMubU11c2ljU3dpdGNoKTtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19FZmZlY3RfVm9sdW1lLCB0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH0sXG4gICAgb25Mb2FkKCkge1xuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5nZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX011c2ljX1ZvbHVtZSwgZnVuY3Rpb24odm9sdW1lKSB7XG4gICAgICAgIC8vICAgICB0aGlzLm1NdXNpY1N3aXRjaCA9IHBhcnNlSW50KHZvbHVtZSk7XG4gICAgICAgIC8vIH0uYmluZCh0aGlzKSwgMSk7XG5cbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2UuZ2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19FZmZlY3RfVm9sdW1lLCBmdW5jdGlvbih2b2x1bWUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMubUVmZmVjdFN3aXRjaCA9IHBhcnNlSW50KHZvbHVtZSk7XG4gICAgICAgIC8vIH0uYmluZCh0aGlzKSwgMSk7XG5cblxuICAgICAgICB0aGlzLnJld2FyZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmlzaCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJld2FyZENvdW50ID0gMDtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jld2FyZENhblVzZScsICgpID0+IHtcbiAgICAgICAgICAgIC8vIOatpOaXtua/gOWKseWPr+eUqCDmuLjmiI/lhoXpg6jpgLvovpFcbiAgICAgICAgICAgIHRoaXMucmV3YXJkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIHdpbmRvd1sncmV3YXJkJ10gPyBcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQod2luZG93WydyZXdhcmQnXSk6XCJcIlxuXG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xuICAgIH0sXG4gICAgcHJlbG9hZCA6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoIShjYy5zeXMucGxhdGZvcm0gPT09IGNjLnN5cy5XRUNIQVRfR0FNRSkpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdmFyIG11c2ljcyA9IFtcbiAgICAgICAgICAgIHRoaXMuYXVkaW9HYW1lQmdtMCxcbiAgICAgICAgXTtcbiAgICAgICAgbXVzaWNzLmZvckVhY2goZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICAgICAgLy8gdmFyIG11c2ljUGF0aCA9IHd4RG93bmxvYWRlci5SRU1PVEVfU0VSVkVSX1JPT1QgKyBwYXRoO1xuICAgICAgICAgICAgLy8gaWYgKG11c2ljUGF0aCAhPSB3eERvd25sb2FkZXIuUkVNT1RFX1NFUlZFUl9ST09UICYmIG11c2ljUGF0aC5lbmRzV2l0aCgnLm1wMycpKSB7XG4gICAgICAgICAgICAvLyAgICAgY2MubG9hZGVyLmxvYWQobXVzaWNQYXRoLCBmdW5jdGlvbihlcnIsIHJlbW90ZVVybCkge1xuICAgICAgICAgICAgLy8gICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAvLyAgICAgICAgICAgICBjYy5lcnJvcihlcnIubWVzc2FnZSB8fCBlcnIpO1xuICAgICAgICAgICAgLy8gICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH0pXG4gICAgfSxcblxuICAgIGdldEF1ZGlvTXVzaWNTd2l0Y2goKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubU11c2ljU3dpdGNoO1xuXG4gICAgfSxcbiAgICBnZXRBdWRpb0VmZmVjdFN3aXRjaCgpXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgIH0sXG4gICAgdHJ1bkF1ZGlvU291bmQob24pXG4gICAge1xuICAgICAgICB0aGlzLnN3aXRjaE11c2ljKG9uKTtcbiAgICAgICAgdGhpcy5zd2l0Y2hFZmZlY3Qob24pXG4gICAgfSxcbiAgICBzd2l0Y2hNdXNpYyA6IGZ1bmN0aW9uKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1NdXNpY1N3aXRjaCAhPSAob24/MTowKSlcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxLXRoaXMubU11c2ljU3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICBpZihvbilcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBzd2l0Y2hFZmZlY3QgOiBmdW5jdGlvbihvbikge1xuICAgICAgICBpZiAodGhpcy5tRWZmZWN0U3dpdGNoICE9IChvbj8xOjApKXtcbiAgICAgICAgICAgIHRoaXMubUVmZmVjdFN3aXRjaCA9IDEtdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG5cbiAgICAgICAgfVxuICAgIH0sXG4gICAgb25IaWRlICgpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucGF1c2VBbGwoKTtcblxuICAgICAgICAvLyBpZiAoQ0NfSlNCKSB7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5tQXVkaW9NYXApIHtcbiAgICAgICAgLy8gICAgICAgICBpZiAoa2V5ID09PSB0aGlzLm1NdXNpY0tleSkge1xuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLm1BdWRpb01hcFtrZXldLnBhdXNlKCk7XG4gICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5tQXVkaW9NYXBba2V5XS5zdG9wKCk7XG4gICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG4gICAgfSxcblxuICAgIG9uU2hvdyAoKSB7XG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnJlc3VtZUFsbCgpO1xuXG4gICAgICAgIC8vIGlmIChDQ19KU0IpIHtcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIGlmICghdGhpcy5tTXVzaWNTd2l0Y2gpIHJldHVybjtcbiAgICAgICAgLy8gICAgIHZhciBjb250ZXh0ID0gdGhpcy5tQXVkaW9NYXBbdGhpcy5tTXVzaWNLZXldO1xuICAgICAgICAvLyAgICAgaWYgKGNvbnRleHQpIHtcbiAgICAgICAgLy8gICAgICAgICBjb250ZXh0LnBsYXkoKTtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuICAgIH0sXG4gICAgcGxheU11c2ljIDogZnVuY3Rpb24oa2V5LCBjYWxsYmFjaywgbG9vcCkge1xuXG4gICAgICAgIGxvb3AgPSB0eXBlb2YgbG9vcCA9PSAndW5kZWZpbmVkJyAgfHwgbG9vcCA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB0aGlzLm1NdXNpY0tleSA9IHRoaXMucGxheShrZXksIGxvb3AsIGNhbGxiYWNrLCB0cnVlKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIOa4uOaIj+iDjOaZr+mfs+S5kFxuICAgICAqL1xuICAgIHBsYXlNdXNpY0dhbWUgKCkge1xuICAgICAgICB0aGlzLnBsYXlNdXNpYyh0aGlzLmF1ZGlvR2FtZUJnbTApO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICog5YGc5q2i6IOM5pmv6Z+z5LmQ5pKt5pS+XG4gICAgICovXG4gICAgc3RvcE11c2ljICgpIHtcbiAgICAgICAgLy8gY2Mud3d4Lk91dFB1dC5sb2coJ3N0b3BNdXNpYyBhdWRpbyBlZmZlY3Qgd3g6ICcgKyB0aGlzLm1NdXNpY0tleSk7XG5cbiAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLm1BdWRpb01hcFt0aGlzLm1NdXNpY0tleV07XG5cbiAgICAgICAgaWYgKHR5cGVvZihjb250ZXh0KSAhPSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKGNjLnN5cy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zdG9wKGNvbnRleHQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnN0b3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3AoY29udGV4dCk7XG5cbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy8g54K45by544CB54Gr566t54iG54K46Z+z5pWIXG4gICAgcGxheUJvbWIgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9Cb21iLCBmYWxzZSk7XG4gICAgfSxcbiAgICAvL+a/gOWFiemfs+aViFxuICAgIHBsYXlKaUd1YW5nKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0ppR3VhbmcsIGZhbHNlKTtcbiAgICB9LFxuICAgIC8v5oqA6IO96Z+z5pWIXG4gICAgcGxheUl0ZW0xKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0l0ZW0xLCBmYWxzZSk7XG4gICAgfSxcbiAgICAvKlxuICAgICAqIOa4uOaIj+W8gOWni+mfs+aViFxuICAgICAqXG4gICAgICovXG4gICAgIHBsYXlHYW1lU3RhcnQoKVxuICAgICB7XG4gICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9HYW1lU3RhcnQsIGZhbHNlKTtcbiAgICAgfSxcbiAgICAgLypcbiAgICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXG4gICAgICAqL1xuICAgICBwbGF5R2FtZU92ZXIoKVxuICAgICB7XG4gICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9HYW1lT3ZlcixmYWxzZSk7XG4gICAgIH0sXG4gICAgLypcbiAgICAgICog5oiQ5Yqf55qE5ri45oiP57uT5p2fXG4gICAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0RmFpbGVkKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0dhbWVSZXN1bHRGYWlsLGZhbHNlKTtcbiAgICB9LFxuICAgIC8qXG4gICog5oiQ5Yqf55qE5ri45oiP57uT5p2fXG4gICovXG4gICAgcGxheUdhbWVSZXN1bHRTdWNjZXNzKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0dhbWVSZXN1bHRTdWNjZXNzLGZhbHNlKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIOaKpeitpueahOmfs+aViFxuICAgICAqL1xuICAgIHBsYXlXYXJuaW5nKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb1dhcm5pbmcsZmFsc2UpO1xuXG4gICAgfSxcblxuICAgIHBsYXlXaW4oKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheSh0aGlzLmF1ZGlvV2luLGZhbHNlKTtcbiAgICB9LFxuXG4gICAgLypcbiAgICAgKiDmlrnlnZfnorDmkp7nmoTlo7Dpn7NcbiAgICAgKi9cbiAgICBwbGF5QnJpY2soKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheSh0aGlzLmJyaWNrU291bmQsZmFsc2UpO1xuICAgIH0sXG4gICAgLy/mlrnlnZfnoLTnoo7nmoTlo7Dpn7NcbiAgICBicmlja0Jvb20oKXtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheSh0aGlzLmF1ZGlvT2JqLGZhbHNlKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIOaMiemSrlxuICAgICAqL1xuICAgIHBsYXlBdWRpb0J1dHRvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0J1dHRvbkNsaWNrLCBmYWxzZSk7XG4gICAgfSxcblxuICAgIHBsYXlSYW5kb21NYXRjaCgpXG4gICAge1xuICAgICAgICB0aGlzLnBsYXlNdXNpYyh0aGlzLnJhbmRvbU1hdGNoU291bmQpO1xuICAgIH0sXG4gICAgcGxheU1hdGNoRm91bmRTb3VuZCgpXG4gICAge1xuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXMubWF0Y2hGb3VuZFNvdW5kLCBmYWxzZSk7XG4gICAgfVxufSk7Il19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/GameData.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'f2f0bI5PsVI+o18xF6G+KVa', 'GameData'); +// Script/GameData.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameData = /** @class */ (function (_super) { + __extends(GameData, _super); + function GameData() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.label = null; + _this.text = 'hello'; + return _this; + // update (dt) {} + } + GameData_1 = GameData; + // LEVEL_INFO: { number: number; }[]; + // LEVEL_INFO:[]; + // LIFE-CYCLE CALLBACKS: + GameData.prototype.onLoad = function () { + if (GameData_1._instance == null) { + GameData_1._instance = this; + cc.game.addPersistRootNode(this.node); + this.AudioManager = this.node.getComponent('BallAudioManager'); + } + else { + this.node.destroy(); + return; + } + }; + GameData.prototype.start = function () { + this.GM_INFO = { + // isEnd: false, + mean_Time: 0, + total: 0, + currSeed: 203213, + gameId: '100009', + userId: 200139, + guide: true, + url: "http://api.sparkus.cn", + success: false, + matchId: null, + custom: 0 + }; + this.LEVEL_INFO = [ + { + number: 3, + moveNumber: 0, + moveSpeed: 0, + maxDistance: 200, + maxMove: 1200, + repeat: 0 //是否重叠,现在0 不重叠 1 重叠1个 + }, + { + number: 4, + moveNumber: 0, + moveSpeed: 0, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 4, + moveNumber: 0, + moveSpeed: 0, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 5, + moveNumber: 1, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 5, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 6, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 6, + moveNumber: 3, + moveSpeed: 4, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 7, + moveNumber: 0, + moveSpeed: 4, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 7, + moveNumber: 3, + moveSpeed: 4, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 7, + moveNumber: 3, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 8, + moveNumber: 3, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 8, + moveNumber: 5, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 9, + moveNumber: 3, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 9, + moveNumber: 5, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 10, + moveNumber: 5, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 3, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 4, + moveNumber: 0, + moveSpeed: 0, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 4, + moveNumber: 1, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 4, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 4, + moveNumber: 1, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 5, + moveNumber: 1, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 5, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 5, + moveNumber: 1, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 5, + moveNumber: 2, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 5, + moveNumber: 3, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 5, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 5, + moveNumber: 2, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 6, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 6, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 6, + moveNumber: 2, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 6, + moveNumber: 2, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 6, + moveNumber: 4, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 6, + moveNumber: 2, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 7, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 7, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 7, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 7, + moveNumber: 2, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 7, + moveNumber: 4, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 7, + moveNumber: 2, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 8, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 8, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 8, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 8, + moveNumber: 2, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 8, + moveNumber: 4, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 8, + moveNumber: 2, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 8, + moveNumber: 4, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 9, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + { + number: 9, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 9, + moveNumber: 5, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 1 + }, + { + number: 10, + moveNumber: 0, + moveSpeed: 6, + maxDistance: 200, + maxMove: 1200, + repeat: 0 + }, + ]; + this.CLICK_DATA = + { + type: 1, + success: false, + round: 0, + totalSunCount: 0, + movedSunCount: 0, + sunSpeed: 0, + overlapSunCount: 0, + colorList: [], + duration: 0, + difficultyLevel: 0, + sunList: [], + stepTimeList: [], + remainder: 120 + }; + this.GAME_DATA = []; + }; + GameData.prototype.CLICK_init = function () { + this.CLICK_DATA = + { + type: 1, + success: false, + round: 0, + totalSunCount: 0, + movedSunCount: 0, + sunSpeed: 0, + overlapSunCount: 0, + colorList: [], + duration: 0, + difficultyLevel: 0, + sunList: [], + stepTimeList: [], + remainder: 120 + }; + }; + var GameData_1; + __decorate([ + property(cc.Label) + ], GameData.prototype, "label", void 0); + __decorate([ + property + ], GameData.prototype, "text", void 0); + GameData = GameData_1 = __decorate([ + ccclass + ], GameData); + return GameData; +}(cc.Component)); +exports.default = GameData; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lRGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXdmQztRQXJmRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7O1FBaWZ2QixpQkFBaUI7SUFDckIsQ0FBQztpQkF4Zm9CLFFBQVE7SUFzQnpCLHFDQUFxQztJQUNyQyxpQkFBaUI7SUFFakIsd0JBQXdCO0lBR3hCLHlCQUFNLEdBQU47UUFDSSxJQUFJLFVBQVEsQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO1lBQzVCLFVBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQzFCLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXRDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNsRTthQUNJO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixPQUFPO1NBQ1Y7SUFDTCxDQUFDO0lBRUQsd0JBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDWCxnQkFBZ0I7WUFDaEIsU0FBUyxFQUFDLENBQUM7WUFDWCxLQUFLLEVBQUMsQ0FBQztZQUNQLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBQyxRQUFRO1lBQ2YsTUFBTSxFQUFDLE1BQU07WUFDYixLQUFLLEVB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QyxFQUFFO2dCQUNWLFlBQVksRUFBQyxFQUFFO2dCQUNmLFNBQVMsRUFBQyxHQUFHO2FBQ2hCLENBQUE7UUFFTCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBRWhCLENBQUE7SUFDTCxDQUFDO0lBRUQsNkJBQVUsR0FBVjtRQUNJLElBQUksQ0FBQyxVQUFVO1lBQ2Y7Z0JBQ0ksSUFBSSxFQUFDLENBQUM7Z0JBQ04sT0FBTyxFQUFDLEtBQUs7Z0JBQ2IsS0FBSyxFQUFDLENBQUM7Z0JBQ1AsYUFBYSxFQUFDLENBQUM7Z0JBQ2YsYUFBYSxFQUFDLENBQUM7Z0JBQ2YsUUFBUSxFQUFDLENBQUM7Z0JBQ1YsZUFBZSxFQUFDLENBQUM7Z0JBQ2pCLFNBQVMsRUFBQyxFQUFFO2dCQUNaLFFBQVEsRUFBQyxDQUFDO2dCQUNWLGVBQWUsRUFBQyxDQUFDO2dCQUNqQixPQUFPLEVBQUMsRUFBRTtnQkFDVixZQUFZLEVBQUMsRUFBRTtnQkFDZixTQUFTLEVBQUMsR0FBRzthQUNoQixDQUFBO0lBQ0wsQ0FBQzs7SUFsZkQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzsyQ0FDSTtJQUd2QjtRQURDLFFBQVE7MENBQ2M7SUFOTixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBd2Y1QjtJQUFELGVBQUM7Q0F4ZkQsQUF3ZkMsQ0F4ZnFDLEVBQUUsQ0FBQyxTQUFTLEdBd2ZqRDtrQkF4Zm9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVEYXRhIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIEdNX0lORk86IHt9O1xyXG4gICAgQXVkaW9NYW5hZ2VyOiBhbnk7XHJcblxyXG4gICAgR0FNRV9EQVRBOiBhbnlbXTtcclxuICAgIExFVkVMX0lORk86IHsgLy/nrKzkuIDpmr7luqZcclxuICAgICAgICBudW1iZXI6IG51bWJlcjsgLy/lpKrpmLPmgLvmlbAgXHJcbiAgICAgICAgbW92ZU51bWJlcjogbnVtYmVyOyAvL+WkqumYs+WPr+enu+WKqOS4quaVsFxyXG4gICAgICAgIG1vdmVTcGVlZDogbnVtYmVyOyAvL+WkqumYs+enu+WKqOmAn+W6puetiee6p1xyXG4gICAgICAgIG1heERpc3RhbmNlOiBudW1iZXI7IC8v5biD5bGA5ZCO56e75Yqo5pyA5aSn6Led56a7XHJcbiAgICAgICAgbWF4TW92ZTogbnVtYmVyOyAvL+WIneWni+W4g+WxgOacgOWkp+enu+WKqOi3neemu1xyXG4gICAgICAgIHJlcGVhdDogbnVtYmVyOyAvL+aYr+WQpumHjeWPoO+8jOeOsOWcqDAg5LiN6YeN5Y+gIDEg6YeN5Y+gMeS4qlxyXG4gICAgfVtdO1xyXG4gICAgQ0xJQ0tfREFUQTogeyB0eXBlOiBudW1iZXI7IHN1Y2Nlc3M6IGJvb2xlYW47IHJvdW5kOiBudW1iZXI7IHRvdGFsU3VuQ291bnQ6IG51bWJlcjsgbW92ZWRTdW5Db3VudDogbnVtYmVyOyBzdW5TcGVlZDogbnVtYmVyOyBvdmVybGFwU3VuQ291bnQ6IG51bWJlcjsgY29sb3JMaXN0OiBhbnlbXTsgZHVyYXRpb246IG51bWJlcjsgZGlmZmljdWx0eUxldmVsOiBudW1iZXI7IHN1bkxpc3Q6IGFueVtdOyBzdGVwVGltZUxpc3Q6IGFueVtdOyByZW1haW5kZXI6IG51bWJlcjsgfTtcclxuXHJcbiAgICAvLyBMRVZFTF9JTkZPOiB7IG51bWJlcjogbnVtYmVyOyB9W107XHJcbiAgICAvLyBMRVZFTF9JTkZPOltdO1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIFxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBpZiAoR2FtZURhdGEuX2luc3RhbmNlID09IG51bGwpIHtcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlID0gdGhpcztcclxuICAgICAgICAgICAgY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuQXVkaW9NYW5hZ2VyID0gdGhpcy5ub2RlLmdldENvbXBvbmVudCgnQmFsbEF1ZGlvTWFuYWdlcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPID0geyBcclxuICAgICAgICAgICAgLy8gaXNFbmQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtZWFuX1RpbWU6MCwgICAgICAgICAgICAgICAgLy/lubPlnYfmlL7nrq3pgJ/luqZcclxuICAgICAgICAgICAgdG90YWw6MCwgICAgICAgICAgICAgICAgICAgIC8v5oC75YWx5a+555qE5Liq5pWwXHJcbiAgICAgICAgICAgIGN1cnJTZWVkOiAyMDMyMTMsICAgICAgICAgICAvL+eUqOS6jumaj+acuuaVsOenjeWtkFxyXG4gICAgICAgICAgICBnYW1lSWQ6JzEwMDAwOScsXHJcbiAgICAgICAgICAgIHVzZXJJZDoyMDAxMzksXHJcbiAgICAgICAgICAgIGd1aWRlOnRydWUsICAgICAgICAgICAgICAgICAvL+aYr+WQpuacieW8leWvvFxyXG4gICAgICAgICAgICB1cmw6XCJodHRwOi8vYXBpLnNwYXJrdXMuY25cIixcclxuICAgICAgICAgICAgc3VjY2VzczpmYWxzZSxcclxuICAgICAgICAgICAgbWF0Y2hJZDpudWxsLFxyXG4gICAgICAgICAgICBjdXN0b206IDBcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuTEVWRUxfSU5GTyA9IFtcclxuICAgICAgICAgICAgeyAgIC8v56ys5LiA6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6MywgICAgICAgLy/lpKrpmLPmgLvmlbAgXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsICAgLy/lpKrpmLPlj6/np7vliqjkuKrmlbBcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDowLCAgICAvL+WkqumYs+enu+WKqOmAn+W6puetiee6p1xyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLCAvL+W4g+WxgOWQjuenu+WKqOacgOWkp+i3neemu1xyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjAgICAgICAgIC8v5piv5ZCm6YeN5Y+g77yM546w5ZyoMCDkuI3ph43lj6AgMSDph43lj6Ax5LiqXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5LqM6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NCxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MCxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDowLFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5LiJ6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NCxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MCxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDowLFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Zub6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NSxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MSxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5LqU6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NSxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MCxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5YWt6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NixcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MCxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5LiD6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NixcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MyxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo0LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5YWr6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NyxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MCxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo0LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Lmd6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NyxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MyxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo0LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NyxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MyxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B5LiA6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6OCxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MyxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B5LqM6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6OCxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6NSxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B5LiJ6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6OSxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MyxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B5Zub6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6OSxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6NSxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B5LqU6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6MTAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzExIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjMsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzEyIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6MCxcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzEzIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjEsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE0IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE1IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjEsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE2IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjEsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE3IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE4IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjEsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE5IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzIwIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjMsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzIxIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzIyIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzIzIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI0IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI1IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI2IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI3IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI4IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI5IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzMwIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzMxIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzMyIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzMzIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM0IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM1IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM2IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM3IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM4IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM5IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQwIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQxIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQyIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjksXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQzIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjksXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQ0IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjksXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQ1IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjEwLFxyXG4gICAgICAgICAgICAgICAgbW92ZU51bWJlcjowLFxyXG4gICAgICAgICAgICAgICAgbW92ZVNwZWVkOjYsXHJcbiAgICAgICAgICAgICAgICBtYXhEaXN0YW5jZToyMDAsXHJcbiAgICAgICAgICAgICAgICBtYXhNb3ZlOjEyMDAsXHJcbiAgICAgICAgICAgICAgICByZXBlYXQ6MFxyXG4gICAgICAgICAgICB9LFxyXG5cclxuXHJcblxyXG4gICAgICAgIF1cclxuXHJcbiAgICAgICAgdGhpcy5DTElDS19EQVRBID0gXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6MSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ZmFsc2UsXHJcbiAgICAgICAgICAgICAgICByb3VuZDowLFxyXG4gICAgICAgICAgICAgICAgdG90YWxTdW5Db3VudDowLFxyXG4gICAgICAgICAgICAgICAgbW92ZWRTdW5Db3VudDowLFxyXG4gICAgICAgICAgICAgICAgc3VuU3BlZWQ6MCxcclxuICAgICAgICAgICAgICAgIG92ZXJsYXBTdW5Db3VudDowLFxyXG4gICAgICAgICAgICAgICAgY29sb3JMaXN0OltdLFxyXG4gICAgICAgICAgICAgICAgZHVyYXRpb246MCxcclxuICAgICAgICAgICAgICAgIGRpZmZpY3VsdHlMZXZlbDowLFxyXG4gICAgICAgICAgICAgICAgc3VuTGlzdDpbXSxcclxuICAgICAgICAgICAgICAgIHN0ZXBUaW1lTGlzdDpbXSxcclxuICAgICAgICAgICAgICAgIHJlbWFpbmRlcjoxMjBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkdBTUVfREFUQSA9IFtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgXVxyXG4gICAgfVxyXG5cclxuICAgIENMSUNLX2luaXQoKXtcclxuICAgICAgICB0aGlzLkNMSUNLX0RBVEEgPSBcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6MSxcclxuICAgICAgICAgICAgc3VjY2VzczpmYWxzZSxcclxuICAgICAgICAgICAgcm91bmQ6MCxcclxuICAgICAgICAgICAgdG90YWxTdW5Db3VudDowLFxyXG4gICAgICAgICAgICBtb3ZlZFN1bkNvdW50OjAsXHJcbiAgICAgICAgICAgIHN1blNwZWVkOjAsXHJcbiAgICAgICAgICAgIG92ZXJsYXBTdW5Db3VudDowLFxyXG4gICAgICAgICAgICBjb2xvckxpc3Q6W10sXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOjAsXHJcbiAgICAgICAgICAgIGRpZmZpY3VsdHlMZXZlbDowLFxyXG4gICAgICAgICAgICBzdW5MaXN0OltdLFxyXG4gICAgICAgICAgICBzdGVwVGltZUxpc3Q6W10sXHJcbiAgICAgICAgICAgIHJlbWFpbmRlcjoxMjBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/ListView/List.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'd5421HgLShFKIjj5f18m1mi', 'List'); +// Script/ListView/List.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StartAxisType = exports.ListType = void 0; +var ItemRender_1 = require("./ItemRender"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +/**列表排列方式 */ +var ListType; +(function (ListType) { + /**水平排列 */ + ListType[ListType["Horizontal"] = 1] = "Horizontal"; + /**垂直排列 */ + ListType[ListType["Vertical"] = 2] = "Vertical"; + /**网格排列 */ + ListType[ListType["Grid"] = 3] = "Grid"; +})(ListType = exports.ListType || (exports.ListType = {})); +/**网格布局中的方向 */ +var StartAxisType; +(function (StartAxisType) { + /**水平排列 */ + StartAxisType[StartAxisType["Horizontal"] = 1] = "Horizontal"; + /**垂直排列 */ + StartAxisType[StartAxisType["Vertical"] = 2] = "Vertical"; +})(StartAxisType = exports.StartAxisType || (exports.StartAxisType = {})); +/** + * 列表 + * 根据cocos_example的listView改动而来 + * @author chenkai 2020.7.8 + * @example + * 1.创建cocos的ScrollView组件,添加List,设置List属性即可 + * + */ +var List = /** @class */ (function (_super) { + __extends(List, _super); + function List() { + var _this = _super !== null && _super.apply(this, arguments) || this; + //==================== 属性面板 ========================= + /**列表选项 */ + _this.itemRender = null; + /**排列方式 */ + _this.type = ListType.Vertical; + /**网格布局中的方向 */ + _this.startAxis = StartAxisType.Horizontal; + /**列表项之间X间隔 */ + _this.spaceX = 0; + /**列表项之间Y间隔 */ + _this.spaceY = 0; + /**上间距 */ + _this.padding_top = 0; + /**下间距 */ + _this.padding_buttom = 0; + /**左间距 */ + _this.padding_left = 0; + _this._padding = 0; + /**右间距 */ + _this.padding_right = 0; + //====================== 滚动容器 =============================== + /**列表滚动容器 */ + _this.scrollView = null; + /**scrollView的内容容器 */ + _this.content = null; + //======================== 列表项 =========================== + /**列表项数据 */ + _this.itemDataList = []; + /**应创建的实例数量 */ + _this.spawnCount = 0; + /**存放列表项实例的数组 */ + _this.itemList = []; + /**item的高度 */ + _this.itemHeight = 0; + /**item的宽度 */ + _this.itemWidth = 0; + /**存放不再使用中的列表项 */ + _this.itemPool = []; + //======================= 计算参数 ========================== + /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */ + _this.halfScrollView = 0; + /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */ + _this.lastContentPosX = 0; + /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */ + _this.lastContentPosY = 0; + /**网格行数 */ + _this.gridRow = 0; + /**网格列数 */ + _this.gridCol = 0; + /**刷新时间,单位s */ + _this.updateTimer = 0; + /**刷新间隔,单位s */ + _this.updateInterval = 0.1; + /**是否滚动容器 */ + _this.bScrolling = false; + /**刷新的函数 */ + _this.updateFun = function () { }; + return _this; + } + List.prototype.onLoad = function () { + this.itemHeight = this.itemRender.height; + this.itemWidth = this.itemRender.width; + this.scrollView = this.node.getComponent(cc.ScrollView); + this.content = this.scrollView.content; + this.content.anchorX = 0; + this.content.anchorY = 1; + this.content.removeAllChildren(); + this.scrollView.node.on("scrolling", this.onScrolling, this); + }; + /** + * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据) + * @param itemDataList item数据列表 + */ + List.prototype.setData = function (itemDataList) { + this.itemDataList = itemDataList.slice(); + this.updateContent(); + }; + /**计算列表的各项参数 */ + List.prototype.countListParam = function () { + var dataLen = this.itemDataList.length; + if (this.type == ListType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个 + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围 + this.updateFun = this.updateV; + } + else if (this.type == ListType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right; + this.content.height = this.content.parent.height; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.udpateH; + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) { + this.padding_left = 0; + this.padding_right = 0; + console.error("padding_left或padding_right过大"); + } + this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX)); + this.gridRow = Math.ceil(dataLen / this.gridCol); + this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2; + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; + this.updateFun = this.updateGrid_V; + } + else if (this.startAxis == StartAxisType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + //计算高间隔 + this.content.height = this.content.parent.height; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) { + this.padding_top = 0; + this.padding_buttom = 0; + console.error("padding_top或padding_buttom过大"); + } + this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY)); + this.gridCol = Math.ceil(dataLen / this.gridRow); + this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.updateGrid_H; + } + } + }; + /** + * 创建列表 + * @param startIndex 起始显示的数据索引 0表示第一项 + * @param offset scrollView偏移量 + */ + List.prototype.createList = function (startIndex, offset) { + //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端 + if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) { + startIndex = this.itemDataList.length - this.spawnCount; + offset = this.scrollView.getMaxScrollOffset(); + //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项 + } + else if (this.itemDataList.length <= this.spawnCount) { + startIndex = 0; + } + for (var i = 0; i < this.spawnCount; i++) { + var item = void 0; + //需要显示的数据索引在数据范围内,则item实例显示出来 + if (i + startIndex < this.itemDataList.length) { + if (this.itemList[i] == null) { + item = this.getItem(); + this.itemList.push(item); + item.parent = this.content; + } + else { + item = this.itemList[i]; + } + //需要显示的数据索引超过了数据范围,则item实例隐藏起来 + } + else { + //item实例数量 > 需要显示的数据量 + if (this.itemList.length > (this.itemDataList.length - startIndex)) { + item = this.itemList.pop(); + item.removeFromParent(); + this.itemPool.push(item); + } + continue; + } + var itemRender = item.getComponent(ItemRender_1.default); + itemRender.itemIndex = i + startIndex; + itemRender.data = this.itemDataList[i + startIndex]; + itemRender.dataChanged(); + if (this.type == ListType.Vertical) { + //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。 + item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top); + } + else if (this.type == ListType.Horizontal) { + item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2); + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + var row = Math.floor((i + startIndex) / this.gridCol); + var col = (i + startIndex) % this.gridCol; + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + else if (this.startAxis == StartAxisType.Horizontal) { + var row = (i + startIndex) % this.gridRow; + var col = Math.floor((i + startIndex) / this.gridRow); + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + } + } + this.scrollView.scrollToOffset(offset); + }; + /**获取一个列表项 */ + List.prototype.getItem = function () { + if (this.itemPool.length == 0) { + return cc.instantiate(this.itemRender); + } + else { + return this.itemPool.pop(); + } + }; + List.prototype.update = function (dt) { + if (this.bScrolling == false) { + return; + } + this.updateTimer += dt; + if (this.updateTimer < this.updateInterval) { + return; + } + this.updateTimer = 0; + this.bScrolling = false; + this.updateFun(); + }; + List.prototype.onScrolling = function () { + this.bScrolling = true; + }; + /**垂直排列 */ + List.prototype.updateV = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isUp = this.scrollView.content.y > this.lastContentPosY; + var offset = (this.itemHeight + this.spaceY) * items.length; + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y - offset; + } + } + else { + //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y + offset; + } + } + } + this.lastContentPosY = this.scrollView.content.y; + }; + /**水平排列 */ + List.prototype.udpateH = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isRight = this.scrollView.content.x > this.lastContentPosX; + var offset = (this.itemWidth + this.spaceX) * items.length; + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x - offset; + } + } + else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x + offset; + } + } + } + this.lastContentPosX = this.scrollView.content.x; + }; + /**网格垂直排列 */ + List.prototype.updateGrid_V = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isUp = this.scrollView.content.y > this.lastContentPosY; + var offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol); + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + else { //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosY = this.scrollView.content.y; + }; + /**网格水平排列 */ + List.prototype.updateGrid_H = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isRight = this.scrollView.content.x > this.lastContentPosX; + var offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow); + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosX = this.scrollView.content.x; + }; + /**获取item在scrollView的局部坐标 */ + List.prototype.getPositionInView = function (item) { + var worldPos = item.parent.convertToWorldSpaceAR(item.position); + var viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos); + return viewPos; + }; + /**获取列表数据 */ + List.prototype.getListData = function () { + return this.itemDataList; + }; + /** + * 增加一项数据到列表的末尾 + * @param data 数据 + */ + List.prototype.addItem = function (data) { + this.itemDataList.push(data); + this.updateContent(); + }; + /** + * 增加一项数据到列表指定位置 + * @param index 位置,0表示第1项 + * @param data 数据 + */ + List.prototype.addItemAt = function (index, data) { + if (this.itemDataList[index] != null || this.itemDataList.length == index) { + this.itemDataList.splice(index, 1, data); + this.updateContent(); + } + }; + /** + * 删除一项数据 + * @param index 删除项的位置 ,0表示第1项 + */ + List.prototype.deleteItem = function (index) { + if (this.itemDataList[index] != null) { + this.itemDataList.splice(index, 1); + this.updateContent(); + } + }; + /** + * 改变一项数据 + * @param index 位置,0表示第1项 + * @param data 替换的数据 + */ + List.prototype.changeItem = function (index, data) { + if (this.itemDataList[index] != null) { + this.itemDataList[index] = data; + this.updateContent(); + } + }; + /**获取第一个Item的位置 */ + List.prototype.updateContent = function () { + //显示列表实例为0个 + if (this.itemList.length == 0) { + this.countListParam(); + this.createList(0, new cc.Vec2(0, 0)); + //显示列表的实例不为0个,则需要重新排列item实例数组 + } + else { + if (this.type == ListType.Vertical) { + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + } + else if (this.type == ListType.Horizontal) { + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + } + else if (this.startAxis == StartAxisType.Horizontal) { + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + } + } + this.countListParam(); + //获取第一个item实例需要显示的数据索引 + var startIndex = this.itemList[0].getComponent(ItemRender_1.default).itemIndex; + if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) { + startIndex += (startIndex + this.spawnCount) % this.gridCol; + } + else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) { + startIndex += (startIndex + this.spawnCount) % this.gridRow; + } + //getScrollOffset()和scrollToOffset()的x值是相反的 + var offset = this.scrollView.getScrollOffset(); + offset.x = -offset.x; + this.createList(startIndex, offset); + } + }; + /**销毁 */ + List.prototype.onDestroy = function () { + //清理列表项 + var len = this.itemList.length; + for (var i = 0; i < len; i++) { + if (cc.isValid(this.itemList[i], true)) { + this.itemList[i].destroy(); + } + } + this.itemList.length = 0; + //清理对象池 + len = this.itemPool.length; + for (var i = 0; i < len; i++) { + if (cc.isValid(this.itemPool[i], true)) { + this.itemPool[i].destroy(); + } + } + this.itemPool.length = 0; + //清理列表数据 + this.itemDataList.length = 0; + }; + __decorate([ + property({ type: cc.Node, tooltip: "列表项" }) + ], List.prototype, "itemRender", void 0); + __decorate([ + property({ type: cc.Enum(ListType), tooltip: "排列方式" }) + ], List.prototype, "type", void 0); + __decorate([ + property({ type: cc.Enum(StartAxisType), tooltip: "网格布局中的方向", visible: function () { return this.type == ListType.Grid; } }) + ], List.prototype, "startAxis", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "列表项X间隔", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "spaceX", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "列表项Y间隔", visible: function () { return this.type == ListType.Vertical || this.type == ListType.Grid; } }) + ], List.prototype, "spaceY", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "上间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) + ], List.prototype, "padding_top", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "下间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) + ], List.prototype, "padding_buttom", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "左间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "padding_left", void 0); + __decorate([ + property(cc.Integer) + ], List.prototype, "_padding", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "右间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "padding_right", void 0); + List = __decorate([ + ccclass + ], List); + return List; +}(cc.Component)); +exports.default = List; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxMaXN0Vmlld1xcTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsMkNBQXFDO0FBRS9CLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRTVDLFlBQVk7QUFDWixJQUFZLFFBT1g7QUFQRCxXQUFZLFFBQVE7SUFDaEIsVUFBVTtJQUNWLG1EQUFjLENBQUE7SUFDZCxVQUFVO0lBQ1YsK0NBQVksQ0FBQTtJQUNaLFVBQVU7SUFDVix1Q0FBUSxDQUFBO0FBQ1osQ0FBQyxFQVBXLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBT25CO0FBRUQsY0FBYztBQUNkLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUNyQixVQUFVO0lBQ1YsNkRBQWMsQ0FBQTtJQUNkLFVBQVU7SUFDVix5REFBWSxDQUFBO0FBQ2hCLENBQUMsRUFMVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQUt4QjtBQUVEOzs7Ozs7O0dBT0c7QUFFSDtJQUFrQyx3QkFBWTtJQUE5QztRQUFBLHFFQXlpQkM7UUF2aUJHLHFEQUFxRDtRQUNyRCxVQUFVO1FBRUgsZ0JBQVUsR0FBWSxJQUFJLENBQUM7UUFFbEMsVUFBVTtRQUVILFVBQUksR0FBYSxRQUFRLENBQUMsUUFBUSxDQUFDO1FBRTFDLGNBQWM7UUFFUCxlQUFTLEdBQWtCLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFFM0QsY0FBYztRQUVQLFlBQU0sR0FBVyxDQUFDLENBQUM7UUFFMUIsY0FBYztRQUVQLFlBQU0sR0FBVyxDQUFDLENBQUM7UUFFMUIsU0FBUztRQUVGLGlCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRS9CLFNBQVM7UUFFRixvQkFBYyxHQUFXLENBQUMsQ0FBQztRQUVsQyxTQUFTO1FBRUYsa0JBQVksR0FBVyxDQUFDLENBQUM7UUFLekIsY0FBUSxHQUFXLENBQUMsQ0FBQztRQUU1QixTQUFTO1FBRUYsbUJBQWEsR0FBVyxDQUFDLENBQUM7UUFFakMsNkRBQTZEO1FBQzdELFlBQVk7UUFDTCxnQkFBVSxHQUFrQixJQUFJLENBQUM7UUFDeEMscUJBQXFCO1FBQ2IsYUFBTyxHQUFZLElBQUksQ0FBQztRQUVoQywwREFBMEQ7UUFDMUQsV0FBVztRQUNILGtCQUFZLEdBQWUsRUFBRSxDQUFDO1FBQ3RDLGNBQWM7UUFDTixnQkFBVSxHQUFXLENBQUMsQ0FBQztRQUMvQixnQkFBZ0I7UUFDUixjQUFRLEdBQW1CLEVBQUUsQ0FBQztRQUN0QyxhQUFhO1FBQ0wsZ0JBQVUsR0FBVyxDQUFDLENBQUM7UUFDL0IsYUFBYTtRQUNMLGVBQVMsR0FBVyxDQUFDLENBQUM7UUFDOUIsaUJBQWlCO1FBQ1QsY0FBUSxHQUFtQixFQUFFLENBQUM7UUFFdEMseURBQXlEO1FBQ3pELHNIQUFzSDtRQUM5RyxvQkFBYyxHQUFXLENBQUMsQ0FBQztRQUNuQyxpREFBaUQ7UUFDekMscUJBQWUsR0FBVyxDQUFDLENBQUM7UUFDcEMsaURBQWlEO1FBQ3pDLHFCQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQ3BDLFVBQVU7UUFDRixhQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLFVBQVU7UUFDRixhQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLGNBQWM7UUFDTixpQkFBVyxHQUFXLENBQUMsQ0FBQztRQUNoQyxjQUFjO1FBQ04sb0JBQWMsR0FBVyxHQUFHLENBQUM7UUFDckMsWUFBWTtRQUNKLGdCQUFVLEdBQVksS0FBSyxDQUFDO1FBQ3BDLFdBQVc7UUFDSCxlQUFTLEdBQWEsY0FBYyxDQUFDLENBQUM7O0lBdWRsRCxDQUFDO0lBcmRHLHFCQUFNLEdBQU47UUFDSSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLHNCQUFPLEdBQWQsVUFBZSxZQUF3QjtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFFekIsQ0FBQztJQUVELGVBQWU7SUFDUCw2QkFBYyxHQUF0QjtRQUNJLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3ZILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLDhDQUE4QztZQUMvSSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLHdCQUF3QjtZQUNuSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDakM7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRTtZQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ3JILElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDeEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ2pDO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDbkMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQy9DLHNEQUFzRDtnQkFDdEQsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO29CQUM1RixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7b0JBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztpQkFDakQ7Z0JBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUMxSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDakksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztnQkFDOUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQzFGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN0QztpQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRTtnQkFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLE9BQU87Z0JBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxzREFBc0Q7Z0JBQ3RELElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtvQkFDOUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO29CQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7aUJBQ2pEO2dCQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDNUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQy9ILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7Z0JBQzVILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUN4RixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDdEM7U0FDSjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0sseUJBQVUsR0FBbEIsVUFBbUIsVUFBa0IsRUFBRSxNQUFlO1FBQ2xELHdEQUF3RDtRQUN4RCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUM5RyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUN4RCxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBRTlDLG1DQUFtQztTQUN0QzthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwRCxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ2xCO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsSUFBSSxJQUFJLFNBQVMsQ0FBQztZQUNsQiw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFO29CQUMxQixJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2lCQUM5QjtxQkFBTTtvQkFDSCxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDM0I7Z0JBQ0QsOEJBQThCO2FBQ2pDO2lCQUFNO2dCQUNILHFCQUFxQjtnQkFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxFQUFFO29CQUNoRSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM1QjtnQkFDRCxTQUFTO2FBQ1o7WUFFRCxJQUFJLFVBQVUsR0FBZSxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFVLENBQUMsQ0FBQztZQUMzRCxVQUFVLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUM7WUFDdEMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztZQUNwRCxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFekIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLHdIQUF3SDtnQkFDeEgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN2STtpQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQzthQUN4STtpQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtnQkFDbkMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUU7b0JBQzFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN0RCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN0SixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztpQkFDdEI7cUJBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLGFBQWEsQ0FBQyxVQUFVLEVBQUU7b0JBQ25ELElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7b0JBQzFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN0SixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztpQkFDdEI7YUFDSjtTQUNKO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGFBQWE7SUFDTCxzQkFBTyxHQUFmO1FBQ0ksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQUVELHFCQUFNLEdBQU4sVUFBTyxFQUFFO1FBQ0wsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRTtZQUMxQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELDBCQUFXLEdBQVg7UUFDSSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVTtJQUNGLHNCQUFPLEdBQWY7UUFDSSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDO1FBQ1QsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNyQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM1RCxJQUFJLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxJQUFJLEVBQUU7Z0JBQ04sb0VBQW9FO2dCQUNwRSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtvQkFDeEYsSUFBSSxVQUFVLEdBQWUsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBVSxDQUFDLENBQUM7b0JBQzNELElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztvQkFDcEQsVUFBVSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7b0JBQ2pDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDL0MsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO2lCQUM1QjthQUNKO2lCQUFNO2dCQUNILG9FQUFvRTtnQkFDcEUsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFO29CQUNuRSxJQUFJLFVBQVUsR0FBZSxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFVLENBQUMsQ0FBQztvQkFDM0QsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO29CQUNwRCxVQUFVLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztvQkFDakMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUMvQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7aUJBQzVCO2FBQ0o7U0FDSjtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxVQUFVO0lBQ0Ysc0JBQU8sR0FBZjtRQUNJLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUM7UUFDVCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ3JDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQy9ELElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxJQUFJLE9BQU8sRUFBRTtnQkFDVCxvRUFBb0U7Z0JBQ3BFLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUU7b0JBQ25FLElBQUksVUFBVSxHQUFlLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQVUsQ0FBQyxDQUFDO29CQUMzRCxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7b0JBQ3BELFVBQVUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO29CQUNqQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQy9DLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztpQkFDNUI7YUFDSjtpQkFBTTtnQkFDSCxvRUFBb0U7Z0JBQ3BFLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO29CQUN0RixJQUFJLFVBQVUsR0FBZSxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFVLENBQUMsQ0FBQztvQkFDM0QsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO29CQUNwRCxVQUFVLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztvQkFDakMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUMvQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7aUJBQzVCO2FBQ0o7U0FDSjtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxZQUFZO0lBQ0osMkJBQVksR0FBcEI7UUFDSSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzFCLElBQUksSUFBYSxDQUFDO1FBQ2xCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDckMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDNUQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLElBQUksSUFBSSxFQUFFO2dCQUNOLG9FQUFvRTtnQkFDcEUsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7b0JBQ3hGLElBQUksVUFBVSxHQUFlLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQVUsQ0FBQyxDQUFDO29CQUMzRCxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztvQkFDdkYsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBRTt3QkFDdEMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQzt3QkFDekIsVUFBVSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7d0JBQ2pDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDL0MsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztxQkFDdEI7eUJBQU07d0JBQ0gsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQzt3QkFDekIsVUFBVSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7d0JBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO3FCQUNwQjtpQkFDSjthQUNKO2lCQUFNLEVBQUMsb0VBQW9FO2dCQUN4RSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUU7b0JBQ25FLElBQUksVUFBVSxHQUFlLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQVUsQ0FBQyxDQUFDO29CQUMzRCxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztvQkFDdkYsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBRTt3QkFDdEMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQzt3QkFDekIsVUFBVSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7d0JBQ2pDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDL0MsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztxQkFDdEI7eUJBQU07d0JBQ0gsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQzt3QkFDekIsVUFBVSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7d0JBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO3FCQUNwQjtpQkFDSjthQUNKO1NBQ0o7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsWUFBWTtJQUNKLDJCQUFZLEdBQXBCO1FBQ0ksSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQztRQUNULElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDckMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDL0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9FLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLElBQUksT0FBTyxFQUFFO2dCQUNULG9FQUFvRTtnQkFDcEUsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRTtvQkFDbkUsSUFBSSxVQUFVLEdBQWUsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBVSxDQUFDLENBQUM7b0JBQzNELElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUN2RixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFO3dCQUN0QyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO3dCQUN6QixVQUFVLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQzt3QkFDakMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUMvQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO3FCQUN0Qjt5QkFBTTt3QkFDSCxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO3dCQUN6QixVQUFVLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQzt3QkFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7cUJBQ3BCO2lCQUNKO2FBQ0o7aUJBQU07Z0JBQ0gsb0VBQW9FO2dCQUNwRSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtvQkFDdEYsSUFBSSxVQUFVLEdBQWUsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBVSxDQUFDLENBQUM7b0JBQzNELElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUN2RixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFO3dCQUN0QyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO3dCQUN6QixVQUFVLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQzt3QkFDakMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUMvQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO3FCQUN0Qjt5QkFBTTt3QkFDSCxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO3dCQUN6QixVQUFVLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQzt3QkFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7cUJBQ3BCO2lCQUNKO2FBQ0o7U0FDSjtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCw0QkFBNEI7SUFDcEIsZ0NBQWlCLEdBQXpCLFVBQTBCLElBQUk7UUFDMUIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEUsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELFlBQVk7SUFDTCwwQkFBVyxHQUFsQjtRQUNJLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksc0JBQU8sR0FBZCxVQUFlLElBQVM7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksd0JBQVMsR0FBaEIsVUFBaUIsS0FBYSxFQUFFLElBQVM7UUFDckMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUU7WUFDdkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0kseUJBQVUsR0FBakIsVUFBa0IsS0FBYTtRQUMzQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHlCQUFVLEdBQWpCLFVBQWtCLEtBQWEsRUFBRSxJQUFTO1FBQ3RDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDaEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtJQUNWLDRCQUFhLEdBQXJCO1FBQ0ksV0FBVztRQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsNkJBQTZCO1NBQ2hDO2FBQU07WUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFNLEVBQUUsQ0FBTTtvQkFDOUIsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQyxDQUFDO2FBQ047aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBTSxFQUFFLENBQU07b0JBQzlCLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixDQUFDLENBQUMsQ0FBQzthQUNOO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUNuQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFNLEVBQUUsQ0FBTTt3QkFDOUIsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3JCLENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBTSxFQUFFLENBQU07d0JBQzlCLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNyQixDQUFDLENBQUMsQ0FBQztpQkFDTjtxQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRTtvQkFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFNLEVBQUUsQ0FBTTt3QkFDOUIsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3JCLENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBTSxFQUFFLENBQU07d0JBQzlCLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNyQixDQUFDLENBQUMsQ0FBQztpQkFDTjthQUNKO1lBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRXRCLHNCQUFzQjtZQUN0QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxvQkFBVSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBRXJFLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtnQkFDeEUsVUFBVSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQy9EO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRTtnQkFDakYsVUFBVSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQy9EO1lBRUQsMkNBQTJDO1lBQzNDLElBQUksTUFBTSxHQUFZLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEQsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFFdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRUQsUUFBUTtJQUNELHdCQUFTLEdBQWhCO1FBQ0ksT0FBTztRQUNQLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDOUI7U0FDSjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN6QixPQUFPO1FBQ1AsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQzNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDOUI7U0FDSjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN6QixRQUFRO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFuaUJEO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDOzRDQUNWO0lBSWxDO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO3NDQUNiO0lBSTFDO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLGdCQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7MkNBQ3REO0lBSTNEO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLGdCQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3Q0FDL0c7SUFJMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sZ0JBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7d0NBQzNHO0lBSTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLGdCQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs2Q0FDckc7SUFJL0I7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sZ0JBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDO2dEQUNsRztJQUlsQztRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxnQkFBSyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7OENBQ3RHO0lBS2hDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7MENBQ087SUFJNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sZ0JBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDOytDQUNyRztJQTFDaEIsSUFBSTtRQUR4QixPQUFPO09BQ2EsSUFBSSxDQXlpQnhCO0lBQUQsV0FBQztDQXppQkQsQUF5aUJDLENBemlCaUMsRUFBRSxDQUFDLFNBQVMsR0F5aUI3QztrQkF6aUJvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEl0ZW1SZW5kZXIgZnJvbSBcIi4vSXRlbVJlbmRlclwiXHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuLyoq5YiX6KGo5o6S5YiX5pa55byPICovXHJcbmV4cG9ydCBlbnVtIExpc3RUeXBlIHtcclxuICAgIC8qKuawtOW5s+aOkuWIlyAqL1xyXG4gICAgSG9yaXpvbnRhbCA9IDEsXHJcbiAgICAvKirlnoLnm7TmjpLliJcgKi9cclxuICAgIFZlcnRpY2FsID0gMixcclxuICAgIC8qKue9keagvOaOkuWIlyAqL1xyXG4gICAgR3JpZCA9IDNcclxufVxyXG5cclxuLyoq572R5qC85biD5bGA5Lit55qE5pa55ZCRICovXHJcbmV4cG9ydCBlbnVtIFN0YXJ0QXhpc1R5cGUge1xyXG4gICAgLyoq5rC05bmz5o6S5YiXICovXHJcbiAgICBIb3Jpem9udGFsID0gMSxcclxuICAgIC8qKuWeguebtOaOkuWIlyAqL1xyXG4gICAgVmVydGljYWwgPSAyLFxyXG59XHJcblxyXG4vKipcclxuICog5YiX6KGoXHJcbiAqIOagueaNrmNvY29zX2V4YW1wbGXnmoRsaXN0Vmlld+aUueWKqOiAjOadpVxyXG4gKiBAYXV0aG9yIGNoZW5rYWkgMjAyMC43LjhcclxuICogQGV4YW1wbGVcclxuICogIDEu5Yib5bu6Y29jb3PnmoRTY3JvbGxWaWV357uE5Lu277yM5re75YqgTGlzdO+8jOiuvue9rkxpc3TlsZ7mgKfljbPlj69cclxuICogIFxyXG4gKi9cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlzdCBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgLy89PT09PT09PT09PT09PT09PT09PSDlsZ7mgKfpnaLmnb8gPT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgLyoq5YiX6KGo6YCJ6aG5ICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5Ob2RlLCB0b29sdGlwOiBcIuWIl+ihqOmhuVwiIH0pXHJcbiAgICBwdWJsaWMgaXRlbVJlbmRlcjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgLyoq5o6S5YiX5pa55byPICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5FbnVtKExpc3RUeXBlKSwgdG9vbHRpcDogXCLmjpLliJfmlrnlvI9cIiB9KVxyXG4gICAgcHVibGljIHR5cGU6IExpc3RUeXBlID0gTGlzdFR5cGUuVmVydGljYWw7XHJcblxyXG4gICAgLyoq572R5qC85biD5bGA5Lit55qE5pa55ZCRICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5FbnVtKFN0YXJ0QXhpc1R5cGUpLCB0b29sdGlwOiBcIue9keagvOW4g+WxgOS4reeahOaWueWQkVwiLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQgfSB9KVxyXG4gICAgcHVibGljIHN0YXJ0QXhpczogU3RhcnRBeGlzVHlwZSA9IFN0YXJ0QXhpc1R5cGUuSG9yaXpvbnRhbDtcclxuXHJcbiAgICAvKirliJfooajpobnkuYvpl7RY6Ze06ZqUICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuWIl+ihqOmhuVjpl7TpmpRcIiwgdmlzaWJsZSgpIHsgcmV0dXJuICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuSG9yaXpvbnRhbCB8fCB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkgfSB9KVxyXG4gICAgcHVibGljIHNwYWNlWDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirliJfooajpobnkuYvpl7RZ6Ze06ZqUICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuWIl+ihqOmhuVnpl7TpmpRcIiwgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCB8fCB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCB9IH0pXHJcbiAgICBwdWJsaWMgc3BhY2VZOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKuS4iumXtOi3nSAqL1xyXG4gICAgQHByb3BlcnR5KHsgdHlwZTogY2MuSW50ZWdlciwgdG9vbHRpcDogXCLkuIrpl7Tot51cIiwgdmlzaWJsZSgpIHsgcmV0dXJuICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuVmVydGljYWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX3RvcDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirkuIvpl7Tot50gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5LiL6Ze06LedXCIsIHZpc2libGUoKSB7IHJldHVybiAodGhpcy50eXBlID09IExpc3RUeXBlLlZlcnRpY2FsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB9IH0pXHJcbiAgICBwdWJsaWMgcGFkZGluZ19idXR0b206IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoq5bem6Ze06LedICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuW3pumXtOi3nVwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB9IH0pXHJcbiAgICBwdWJsaWMgcGFkZGluZ19sZWZ0OiBudW1iZXIgPSAwO1xyXG5cclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkludGVnZXIpXHJcbiAgICBwdWJsaWMgX3BhZGRpbmc6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoq5Y+z6Ze06LedICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuWPs+mXtOi3nVwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB9IH0pXHJcbiAgICBwdWJsaWMgcGFkZGluZ19yaWdodDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvLz09PT09PT09PT09PT09PT09PT09PT0g5rua5Yqo5a655ZmoID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8qKuWIl+ihqOa7muWKqOWuueWZqCAqL1xyXG4gICAgcHVibGljIHNjcm9sbFZpZXc6IGNjLlNjcm9sbFZpZXcgPSBudWxsO1xyXG4gICAgLyoqc2Nyb2xsVmlld+eahOWGheWuueWuueWZqCAqL1xyXG4gICAgcHJpdmF0ZSBjb250ZW50OiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PSDliJfooajpobkgPT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAvKirliJfooajpobnmlbDmja4gKi9cclxuICAgIHByaXZhdGUgaXRlbURhdGFMaXN0OiBBcnJheTxhbnk+ID0gW107XHJcbiAgICAvKirlupTliJvlu7rnmoTlrp7kvovmlbDph48gKi9cclxuICAgIHByaXZhdGUgc3Bhd25Db3VudDogbnVtYmVyID0gMDtcclxuICAgIC8qKuWtmOaUvuWIl+ihqOmhueWunuS+i+eahOaVsOe7hCAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtTGlzdDogQXJyYXk8Y2MuTm9kZT4gPSBbXTtcclxuICAgIC8qKml0ZW3nmoTpq5jluqYgKi9cclxuICAgIHByaXZhdGUgaXRlbUhlaWdodDogbnVtYmVyID0gMDtcclxuICAgIC8qKml0ZW3nmoTlrr3luqYgKi9cclxuICAgIHByaXZhdGUgaXRlbVdpZHRoOiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5a2Y5pS+5LiN5YaN5L2/55So5Lit55qE5YiX6KGo6aG5ICovXHJcbiAgICBwcml2YXRlIGl0ZW1Qb29sOiBBcnJheTxjYy5Ob2RlPiA9IFtdO1xyXG5cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT0g6K6h566X5Y+C5pWwID09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAvKirot53nprtzY3JvbGxWaWV35Lit5b+D54K555qE6Led56a777yM6LaF6L+H6L+Z5Liq6Led56a755qEaXRlbeS8muiiq+mHjee9ru+8jOS4gOiIrOiuvue9ruS4uiBzY3JvbGxWSWV3LmhlaWdodC8yICsgaXRlbS5oZWlndC8yICsgc3BhY2XvvIzlm6DkuLrov5nkuKrot53nprtpdGVt5q2j5aW96LaF5Ye6c2Nyb2xsVmlld+aYvuekuuiMg+WbtCAqL1xyXG4gICAgcHJpdmF0ZSBoYWxmU2Nyb2xsVmlldzogbnVtYmVyID0gMDtcclxuICAgIC8qKuS4iuS4gOasoWNvbnRlbnTnmoRY5YC877yM55So5LqO5ZKM546w5ZyoY29udGVudOeahFjlgLzmr5TovoPvvIzlvpflh7rmmK/lkJHlt6bov5jmmK/lkJHlj7Pmu5rliqggKi9cclxuICAgIHByaXZhdGUgbGFzdENvbnRlbnRQb3NYOiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5LiK5LiA5qyhY29udGVudOeahFnlgLzvvIznlKjkuo7lkoznjrDlnKhjb250ZW5055qEWeWAvOavlOi+g++8jOW+l+WHuuaYr+WQkeS4iui/mOaYr+WQkeS4i+a7muWKqCAqL1xyXG4gICAgcHJpdmF0ZSBsYXN0Q29udGVudFBvc1k6IG51bWJlciA9IDA7XHJcbiAgICAvKirnvZHmoLzooYzmlbAgKi9cclxuICAgIHByaXZhdGUgZ3JpZFJvdzogbnVtYmVyID0gMDtcclxuICAgIC8qKue9keagvOWIl+aVsCAqL1xyXG4gICAgcHJpdmF0ZSBncmlkQ29sOiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5Yi35paw5pe26Ze077yM5Y2V5L2NcyAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVUaW1lcjogbnVtYmVyID0gMDtcclxuICAgIC8qKuWIt+aWsOmXtOmalO+8jOWNleS9jXMgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlSW50ZXJ2YWw6IG51bWJlciA9IDAuMTtcclxuICAgIC8qKuaYr+WQpua7muWKqOWuueWZqCAqL1xyXG4gICAgcHJpdmF0ZSBiU2Nyb2xsaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvKirliLfmlrDnmoTlh73mlbAgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlRnVuOiBGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHsgfTtcclxuXHJcbiAgICBvbkxvYWQoKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtSGVpZ2h0ID0gdGhpcy5pdGVtUmVuZGVyLmhlaWdodDtcclxuICAgICAgICB0aGlzLml0ZW1XaWR0aCA9IHRoaXMuaXRlbVJlbmRlci53aWR0aDtcclxuICAgICAgICB0aGlzLnNjcm9sbFZpZXcgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KGNjLlNjcm9sbFZpZXcpO1xyXG4gICAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50O1xyXG4gICAgICAgIHRoaXMuY29udGVudC5hbmNob3JYID0gMDtcclxuICAgICAgICB0aGlzLmNvbnRlbnQuYW5jaG9yWSA9IDE7XHJcbiAgICAgICAgdGhpcy5jb250ZW50LnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxWaWV3Lm5vZGUub24oXCJzY3JvbGxpbmdcIiwgdGhpcy5vblNjcm9sbGluZywgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJfooajmlbDmja4gKOWIl+ihqOaVsOaNruWkjeWItuS9v+eUqO+8jOWmguaenOWIl+ihqOaVsOaNruaUueWPmO+8jOWImemcgOimgemHjeaWsOiuvue9ruS4gOmBjeaVsOaNrilcclxuICAgICAqIEBwYXJhbSBpdGVtRGF0YUxpc3QgaXRlbeaVsOaNruWIl+ihqFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0RGF0YShpdGVtRGF0YUxpc3Q6IEFycmF5PGFueT4pIHtcclxuICAgICAgICB0aGlzLml0ZW1EYXRhTGlzdCA9IGl0ZW1EYXRhTGlzdC5zbGljZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xyXG4gICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLyoq6K6h566X5YiX6KGo55qE5ZCE6aG55Y+C5pWwICovXHJcbiAgICBwcml2YXRlIGNvdW50TGlzdFBhcmFtKCkge1xyXG4gICAgICAgIGxldCBkYXRhTGVuID0gdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoO1xyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3Lmhvcml6b250YWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3LnZlcnRpY2FsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50LndpZHRoID0gdGhpcy5jb250ZW50LnBhcmVudC53aWR0aDtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50LmhlaWdodCA9IGRhdGFMZW4gKiB0aGlzLml0ZW1IZWlnaHQgKyAoZGF0YUxlbiAtIDEpICogdGhpcy5zcGFjZVkgKyB0aGlzLnBhZGRpbmdfdG9wICsgdGhpcy5wYWRkaW5nX2J1dHRvbTtcclxuICAgICAgICAgICAgdGhpcy5zcGF3bkNvdW50ID0gTWF0aC5yb3VuZCh0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpKSArIDI7IC8v6K6h566X5Yib5bu655qEaXRlbeWunuS+i+aVsOmHj++8jOavlOW9k+WJjXNjcm9sbFZpZXflrrnlmajog73mlL7kuIvnmoRpdGVt5pWw6YeP5YaN5Yqg5LiKMuS4qlxyXG4gICAgICAgICAgICB0aGlzLmhhbGZTY3JvbGxWaWV3ID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUuaGVpZ2h0IC8gMiArIHRoaXMuaXRlbUhlaWdodCAvIDIgKyB0aGlzLnNwYWNlWTsgLy/orqHnrpdidWZmZXJab25l77yMaXRlbeeahOaYvuekuuiMg+WbtFxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZ1biA9IHRoaXMudXBkYXRlVjtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy5ob3Jpem9udGFsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3LnZlcnRpY2FsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudC53aWR0aCA9IGRhdGFMZW4gKiB0aGlzLml0ZW1XaWR0aCArIChkYXRhTGVuIC0gMSkgKiB0aGlzLnNwYWNlWCArIHRoaXMucGFkZGluZ19sZWZ0ICsgdGhpcy5wYWRkaW5nX3JpZ2h0O1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQuaGVpZ2h0ID0gdGhpcy5jb250ZW50LnBhcmVudC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMuc3Bhd25Db3VudCA9IE1hdGgucm91bmQodGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkpICsgMjtcclxuICAgICAgICAgICAgdGhpcy5oYWxmU2Nyb2xsVmlldyA9IHRoaXMuc2Nyb2xsVmlldy5ub2RlLndpZHRoIC8gMiArIHRoaXMuaXRlbVdpZHRoIC8gMiArIHRoaXMuc3BhY2VYO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZ1biA9IHRoaXMudWRwYXRlSDtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLlZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcuaG9yaXpvbnRhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3LnZlcnRpY2FsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC53aWR0aCA9IHRoaXMuY29udGVudC5wYXJlbnQud2lkdGg7XHJcbiAgICAgICAgICAgICAgICAvL+WmguaenGxlZnTlkoxyaWdodOmXtOmalOi/h+Wkp++8jOWvvOiHtOaUvuS4jeS4i+S4gOS4qml0ZW3vvIzliJlsZWZ05ZKMcmlnaHTpg73orr7nva7kuLow77yM55u45b2T5LqO5LiN55Sf5pWIXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWRkaW5nX2xlZnQgKyB0aGlzLnBhZGRpbmdfcmlnaHQgKyB0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYID4gdGhpcy5jb250ZW50LndpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWRkaW5nX2xlZnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ19yaWdodCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcInBhZGRpbmdfbGVmdOaIlnBhZGRpbmdfcmlnaHTov4flpKdcIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkQ29sID0gTWF0aC5mbG9vcigodGhpcy5jb250ZW50LndpZHRoIC0gdGhpcy5wYWRkaW5nX2xlZnQgLSB0aGlzLnBhZGRpbmdfcmlnaHQpIC8gKHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVgpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZFJvdyA9IE1hdGguY2VpbChkYXRhTGVuIC8gdGhpcy5ncmlkQ29sKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSB0aGlzLmdyaWRSb3cgKiB0aGlzLml0ZW1IZWlnaHQgKyAodGhpcy5ncmlkUm93IC0gMSkgKiB0aGlzLnNwYWNlWSArIHRoaXMucGFkZGluZ190b3AgKyB0aGlzLnBhZGRpbmdfYnV0dG9tO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zcGF3bkNvdW50ID0gTWF0aC5yb3VuZCh0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpKSAqIHRoaXMuZ3JpZENvbCArIHRoaXMuZ3JpZENvbCAqIDI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbGZTY3JvbGxWaWV3ID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUuaGVpZ2h0IC8gMiArIHRoaXMuaXRlbUhlaWdodCAvIDIgKyB0aGlzLnNwYWNlWTtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51cGRhdGVHcmlkX1Y7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcuaG9yaXpvbnRhbCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIC8v6K6h566X6auY6Ze06ZqUXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQuaGVpZ2h0ID0gdGhpcy5jb250ZW50LnBhcmVudC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICAvL+WmguaenGxlZnTlkoxyaWdodOmXtOmalOi/h+Wkp++8jOWvvOiHtOaUvuS4jeS4i+S4gOS4qml0ZW3vvIzliJlsZWZ05ZKMcmlnaHTpg73orr7nva7kuLow77yM55u45b2T5LqO5LiN55Sf5pWIXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWRkaW5nX3RvcCArIHRoaXMucGFkZGluZ19idXR0b20gKyB0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSA+IHRoaXMuY29udGVudC5oZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdfdG9wID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdfYnV0dG9tID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwicGFkZGluZ190b3DmiJZwYWRkaW5nX2J1dHRvbei/h+Wkp1wiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRSb3cgPSBNYXRoLmZsb29yKCh0aGlzLmNvbnRlbnQuaGVpZ2h0IC0gdGhpcy5wYWRkaW5nX3RvcCAtIHRoaXMucGFkZGluZ19idXR0b20pIC8gKHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRDb2wgPSBNYXRoLmNlaWwoZGF0YUxlbiAvIHRoaXMuZ3JpZFJvdyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQud2lkdGggPSB0aGlzLmdyaWRDb2wgKiB0aGlzLml0ZW1XaWR0aCArICh0aGlzLmdyaWRDb2wgLSAxKSAqIHRoaXMuc3BhY2VYICsgdGhpcy5wYWRkaW5nX2xlZnQgKyB0aGlzLnBhZGRpbmdfcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNwYXduQ291bnQgPSBNYXRoLnJvdW5kKHRoaXMuc2Nyb2xsVmlldy5ub2RlLndpZHRoIC8gKHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVgpKSAqIHRoaXMuZ3JpZFJvdyArIHRoaXMuZ3JpZFJvdyAqIDI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbGZTY3JvbGxWaWV3ID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAyICsgdGhpcy5pdGVtV2lkdGggLyAyICsgdGhpcy5zcGFjZVg7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUZ1biA9IHRoaXMudXBkYXRlR3JpZF9IO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5Yib5bu65YiX6KGoIFxyXG4gICAgICogQHBhcmFtIHN0YXJ0SW5kZXgg6LW35aeL5pi+56S655qE5pWw5o2u57Si5byVIDDooajnpLrnrKzkuIDpoblcclxuICAgICAqIEBwYXJhbSBvZmZzZXQgICAgIHNjcm9sbFZpZXflgY/np7vph49cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjcmVhdGVMaXN0KHN0YXJ0SW5kZXg6IG51bWJlciwgb2Zmc2V0OiBjYy5WZWMyKSB7XHJcbiAgICAgICAgLy/lvZPpnIDopoHmmL7npLrnmoTmlbDmja7plb/luqYgPiDomZrmi5/liJfooajplb/luqbvvIwg5Yig6Zmk5pyA5pyr5bC+5Yeg5Liq5pWw5o2u5pe277yM5YiX6KGo6ZyA6KaB6YeN572u5L2N572u5Yiwc2Nyb2xsVmlld+acgOW6leerr1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGggPiB0aGlzLnNwYXduQ291bnQgJiYgKHN0YXJ0SW5kZXggKyB0aGlzLnNwYXduQ291bnQgLSAxKSA+PSB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgc3RhcnRJbmRleCA9IHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCAtIHRoaXMuc3Bhd25Db3VudDtcclxuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5zY3JvbGxWaWV3LmdldE1heFNjcm9sbE9mZnNldCgpO1xyXG5cclxuICAgICAgICAgICAgLy/lvZPpnIDopoHmmL7npLrnmoTmlbDmja7plb/luqYgPD0g6Jma5ouf5YiX6KGo6ZW/5bqm77yMIOmakOiXj+WkmuS9meeahOiZmuaLn+WIl+ihqOmhuSBcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA8PSB0aGlzLnNwYXduQ291bnQpIHtcclxuICAgICAgICAgICAgc3RhcnRJbmRleCA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Bhd25Db3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBjYy5Ob2RlO1xyXG4gICAgICAgICAgICAvL+mcgOimgeaYvuekuueahOaVsOaNrue0ouW8leWcqOaVsOaNruiMg+WbtOWGhe+8jOWImWl0ZW3lrp7kvovmmL7npLrlh7rmnaVcclxuICAgICAgICAgICAgaWYgKGkgKyBzdGFydEluZGV4IDwgdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtTGlzdFtpXSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuZ2V0SXRlbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3QucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnBhcmVudCA9IHRoaXMuY29udGVudDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuaXRlbUxpc3RbaV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL+mcgOimgeaYvuekuueahOaVsOaNrue0ouW8lei2hei/h+S6huaVsOaNruiMg+WbtO+8jOWImWl0ZW3lrp7kvovpmpDol4/otbfmnaVcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vaXRlbeWunuS+i+aVsOmHjyA+IOmcgOimgeaYvuekuueahOaVsOaNrumHj1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbUxpc3QubGVuZ3RoID4gKHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCAtIHN0YXJ0SW5kZXgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuaXRlbUxpc3QucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtUG9vbC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaSArIHN0YXJ0SW5kZXg7XHJcbiAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2kgKyBzdGFydEluZGV4XTtcclxuICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgLy/lm6DkuLpjb250ZW5055qE6ZSa54K5WOaYrzDvvIzmiYDku6VpdGVt55qEeOWAvOaYr2NvbnRlbnQud2l0aC8y6KGo56S65bGF5Lit77yM6ZSa54K5WeaYrzHvvIzmiYDku6VpdGVt55qEeeWAvOS7jmNvbnRlbnTpobbpg6jlkJHkuIvmmK8w5Yiw6LSf5peg56m344CC5omA5LulaXRlbS55PSAtaXRlbS5oZWlnaHQvMuaXtu+8jOaYr+WcqGNvbnRlbnTnmoTpobbpg6jjgIJcclxuICAgICAgICAgICAgICAgIGl0ZW0uc2V0UG9zaXRpb24odGhpcy5jb250ZW50LndpZHRoIC8gMiwgLWl0ZW0uaGVpZ2h0ICogKDAuNSArIGkgKyBzdGFydEluZGV4KSAtIHRoaXMuc3BhY2VZICogKGkgKyBzdGFydEluZGV4KSAtIHRoaXMucGFkZGluZ190b3ApO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNldFBvc2l0aW9uKGl0ZW0ud2lkdGggKiAoMC41ICsgaSArIHN0YXJ0SW5kZXgpICsgdGhpcy5zcGFjZVggKiAoaSArIHN0YXJ0SW5kZXgpICsgdGhpcy5wYWRkaW5nX2xlZnQsIC10aGlzLmNvbnRlbnQuaGVpZ2h0IC8gMik7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLlZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJvdyA9IE1hdGguZmxvb3IoKGkgKyBzdGFydEluZGV4KSAvIHRoaXMuZ3JpZENvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbCA9IChpICsgc3RhcnRJbmRleCkgJSB0aGlzLmdyaWRDb2w7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5zZXRQb3NpdGlvbihpdGVtLndpZHRoICogKDAuNSArIGNvbCkgKyB0aGlzLnNwYWNlWCAqIGNvbCArIHRoaXMucGFkZGluZ19sZWZ0LCAtaXRlbS5oZWlnaHQgKiAoMC41ICsgcm93KSAtIHRoaXMuc3BhY2VZICogcm93IC0gdGhpcy5wYWRkaW5nX3RvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcm93ID0gKGkgKyBzdGFydEluZGV4KSAlIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgICAgICAgICB2YXIgY29sID0gTWF0aC5mbG9vcigoaSArIHN0YXJ0SW5kZXgpIC8gdGhpcy5ncmlkUm93KTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnNldFBvc2l0aW9uKGl0ZW0ud2lkdGggKiAoMC41ICsgY29sKSArIHRoaXMuc3BhY2VYICogY29sICsgdGhpcy5wYWRkaW5nX2xlZnQsIC1pdGVtLmhlaWdodCAqICgwLjUgKyByb3cpIC0gdGhpcy5zcGFjZVkgKiByb3cgLSB0aGlzLnBhZGRpbmdfdG9wKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2Nyb2xsVmlldy5zY3JvbGxUb09mZnNldChvZmZzZXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKuiOt+WPluS4gOS4quWIl+ihqOmhuSAqL1xyXG4gICAgcHJpdmF0ZSBnZXRJdGVtKCkge1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1Qb29sLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjYy5pbnN0YW50aWF0ZSh0aGlzLml0ZW1SZW5kZXIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLml0ZW1Qb29sLnBvcCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZHQpIHtcclxuICAgICAgICBpZiAodGhpcy5iU2Nyb2xsaW5nID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lciArPSBkdDtcclxuICAgICAgICBpZiAodGhpcy51cGRhdGVUaW1lciA8IHRoaXMudXBkYXRlSW50ZXJ2YWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyID0gMDtcclxuICAgICAgICB0aGlzLmJTY3JvbGxpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZ1bigpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2Nyb2xsaW5nKCkge1xyXG4gICAgICAgIHRoaXMuYlNjcm9sbGluZyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq5Z6C55u05o6S5YiXICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZVYoKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5pdGVtTGlzdDtcclxuICAgICAgICBsZXQgaXRlbTtcclxuICAgICAgICBsZXQgYnVmZmVyWm9uZSA9IHRoaXMuaGFsZlNjcm9sbFZpZXc7XHJcbiAgICAgICAgbGV0IGlzVXAgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC55ID4gdGhpcy5sYXN0Q29udGVudFBvc1k7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9ICh0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSkgKiBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpdGVtID0gaXRlbXNbaV07XHJcbiAgICAgICAgICAgIGxldCB2aWV3UG9zID0gdGhpcy5nZXRQb3NpdGlvbkluVmlldyhpdGVtKTtcclxuICAgICAgICAgICAgaWYgKGlzVXApIHtcclxuICAgICAgICAgICAgICAgIC8vaXRlbeS4iua7keaXtu+8jOi2heWHuuS6hnNjcm9sbFZpZXfkuIrovrnnlYzvvIzlsIZpdGVt56e75Yqo5Yiw5LiL5pa55aSN55So77yMaXRlbeenu+WKqOWIsOS4i+aWueeahOS9jee9ruW/hemhu+S4jei2hei/h2NvbnRlbnTnmoTkuIvovrnnlYxcclxuICAgICAgICAgICAgICAgIGlmICh2aWV3UG9zLnkgPiBidWZmZXJab25lICYmIGl0ZW0ueSAtIG9mZnNldCAtIHRoaXMucGFkZGluZ19idXR0b20gPiAtdGhpcy5jb250ZW50LmhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4ICsgaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ueSA9IGl0ZW0ueSAtIG9mZnNldDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vaXRlbeS4i+a7keaXtu+8jOi2heWHuuS6hnNjcm9sbFZpZXfkuIvovrnnlYzvvIzlsIZpdGVt56e75Yqo5Yiw5LiK5pa55aSN55So77yMaXRlbeenu+WKqOWIsOS4iuaWueeahOS9jee9ruW/hemhu+S4jei2hei/h2NvbnRlbnTnmoTkuIrovrnnlYxcclxuICAgICAgICAgICAgICAgIGlmICh2aWV3UG9zLnkgPCAtYnVmZmVyWm9uZSAmJiBpdGVtLnkgKyBvZmZzZXQgKyB0aGlzLnBhZGRpbmdfdG9wIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4IC0gaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ueSA9IGl0ZW0ueSArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxhc3RDb250ZW50UG9zWSA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50Lnk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq5rC05bmz5o6S5YiXICovXHJcbiAgICBwcml2YXRlIHVkcGF0ZUgoKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5pdGVtTGlzdDtcclxuICAgICAgICBsZXQgaXRlbTtcclxuICAgICAgICBsZXQgYnVmZmVyWm9uZSA9IHRoaXMuaGFsZlNjcm9sbFZpZXc7XHJcbiAgICAgICAgbGV0IGlzUmlnaHQgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC54ID4gdGhpcy5sYXN0Q29udGVudFBvc1g7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9ICh0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYKSAqIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtc1tpXTtcclxuICAgICAgICAgICAgbGV0IHZpZXdQb3MgPSB0aGlzLmdldFBvc2l0aW9uSW5WaWV3KGl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoaXNSaWdodCkge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5Y+z5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+WPs+i+ueeVjO+8jOWwhml0ZW3np7vliqjliLDlt6bmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5bem5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOW3pui+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueCA+IGJ1ZmZlclpvbmUgJiYgaXRlbS54IC0gb2Zmc2V0IC0gdGhpcy5wYWRkaW5nX2xlZnQgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggLSBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5bem5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+W3pui+ueeVjO+8jOWwhml0ZW3np7vliqjliLDlj7PmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5Y+z5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOWPs+i+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueCA8IC1idWZmZXJab25lICYmIGl0ZW0ueCArIG9mZnNldCArIHRoaXMucGFkZGluZ19yaWdodCA8IHRoaXMuY29udGVudC53aWR0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4ICsgaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxhc3RDb250ZW50UG9zWCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50Lng7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq572R5qC85Z6C55u05o6S5YiXICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZUdyaWRfVigpIHtcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgICAgIGxldCBpdGVtOiBjYy5Ob2RlO1xyXG4gICAgICAgIGxldCBidWZmZXJab25lID0gdGhpcy5oYWxmU2Nyb2xsVmlldztcclxuICAgICAgICBsZXQgaXNVcCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50LnkgPiB0aGlzLmxhc3RDb250ZW50UG9zWTtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gKHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZKSAqICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRDb2wpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuZ2V0UG9zaXRpb25JblZpZXcoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChpc1VwKSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3kuIrmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35LiK6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOS4i+aWueWkjeeUqO+8jGl0ZW3np7vliqjliLDkuIvmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5LiL6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy55ID4gYnVmZmVyWm9uZSAmJiBpdGVtLnkgLSBvZmZzZXQgLSB0aGlzLnBhZGRpbmdfYnV0dG9tID4gLXRoaXMuY29udGVudC5oZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCArICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRDb2wpICogdGhpcy5ncmlkQ29sO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7Ly9pdGVt5LiL5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+S4i+i+ueeVjO+8jOWwhml0ZW3np7vliqjliLDkuIrmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5LiK5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOS4iui+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueSA8IC1idWZmZXJab25lICYmIGl0ZW0ueSArIG9mZnNldCArIHRoaXMucGFkZGluZ190b3AgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggLSAodGhpcy5zcGF3bkNvdW50IC8gdGhpcy5ncmlkQ29sKSAqIHRoaXMuZ3JpZENvbDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueSA9IGl0ZW0ueSArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueSA9IGl0ZW0ueSArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NZID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueTtcclxuICAgIH1cclxuXHJcbiAgICAvKirnvZHmoLzmsLTlubPmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlR3JpZF9IKCkge1xyXG4gICAgICAgIGxldCBpdGVtcyA9IHRoaXMuaXRlbUxpc3Q7XHJcbiAgICAgICAgbGV0IGl0ZW07XHJcbiAgICAgICAgbGV0IGJ1ZmZlclpvbmUgPSB0aGlzLmhhbGZTY3JvbGxWaWV3O1xyXG4gICAgICAgIGxldCBpc1JpZ2h0ID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueCA+IHRoaXMubGFzdENvbnRlbnRQb3NYO1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkgKiAodGhpcy5zcGF3bkNvdW50IC8gdGhpcy5ncmlkUm93KTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtc1tpXTtcclxuICAgICAgICAgICAgbGV0IHZpZXdQb3MgPSB0aGlzLmdldFBvc2l0aW9uSW5WaWV3KGl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoaXNSaWdodCkge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5Y+z5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+WPs+i+ueeVjO+8jOWwhml0ZW3np7vliqjliLDlt6bmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5bem5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOW3pui+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueCA+IGJ1ZmZlclpvbmUgJiYgaXRlbS54IC0gb2Zmc2V0IC0gdGhpcy5wYWRkaW5nX2xlZnQgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggLSAodGhpcy5zcGF3bkNvdW50IC8gdGhpcy5ncmlkUm93KSAqIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCAtIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCAtIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5bem5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+W3pui+ueeVjO+8jOWwhml0ZW3np7vliqjliLDlj7PmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5Y+z5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOWPs+i+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueCA8IC1idWZmZXJab25lICYmIGl0ZW0ueCArIG9mZnNldCArIHRoaXMucGFkZGluZ19yaWdodCA8IHRoaXMuY29udGVudC53aWR0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4ICsgKHRoaXMuc3Bhd25Db3VudCAvIHRoaXMuZ3JpZFJvdykgKiB0aGlzLmdyaWRSb3c7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnggPSBpdGVtLnggKyBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGEgPSB0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnggPSBpdGVtLnggKyBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxhc3RDb250ZW50UG9zWCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50Lng7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq6I635Y+WaXRlbeWcqHNjcm9sbFZpZXfnmoTlsYDpg6jlnZDmoIcgKi9cclxuICAgIHByaXZhdGUgZ2V0UG9zaXRpb25JblZpZXcoaXRlbSkge1xyXG4gICAgICAgIGxldCB3b3JsZFBvcyA9IGl0ZW0ucGFyZW50LmNvbnZlcnRUb1dvcmxkU3BhY2VBUihpdGVtLnBvc2l0aW9uKTtcclxuICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuc2Nyb2xsVmlldy5ub2RlLmNvbnZlcnRUb05vZGVTcGFjZUFSKHdvcmxkUG9zKTtcclxuICAgICAgICByZXR1cm4gdmlld1BvcztcclxuICAgIH1cclxuXHJcbiAgICAvKirojrflj5bliJfooajmlbDmja4gKi9cclxuICAgIHB1YmxpYyBnZXRMaXN0RGF0YSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pdGVtRGF0YUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlop7liqDkuIDpobnmlbDmja7liLDliJfooajnmoTmnKvlsL5cclxuICAgICAqIEBwYXJhbSBkYXRhIOaVsOaNrlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkSXRlbShkYXRhOiBhbnkpIHtcclxuICAgICAgICB0aGlzLml0ZW1EYXRhTGlzdC5wdXNoKGRhdGEpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5aKe5Yqg5LiA6aG55pWw5o2u5Yiw5YiX6KGo5oyH5a6a5L2N572uXHJcbiAgICAgKiBAcGFyYW0gaW5kZXggICDkvY3nva7vvIww6KGo56S656ysMemhuVxyXG4gICAgICogQHBhcmFtIGRhdGEgIOaVsOaNrlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkSXRlbUF0KGluZGV4OiBudW1iZXIsIGRhdGE6IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpbmRleF0gIT0gbnVsbCB8fCB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGggPT0gaW5kZXgpIHtcclxuICAgICAgICAgICAgdGhpcy5pdGVtRGF0YUxpc3Quc3BsaWNlKGluZGV4LCAxLCBkYXRhKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5Yig6Zmk5LiA6aG55pWw5o2uXHJcbiAgICAgKiBAcGFyYW0gaW5kZXgg5Yig6Zmk6aG555qE5L2N572uICww6KGo56S656ysMemhuVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVsZXRlSXRlbShpbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbURhdGFMaXN0LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaUueWPmOS4gOmhueaVsOaNrlxyXG4gICAgICogQHBhcmFtIGluZGV4ICAg5L2N572uLDDooajnpLrnrKwx6aG5XHJcbiAgICAgKiBAcGFyYW0gZGF0YSAg5pu/5o2i55qE5pWw5o2uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaGFuZ2VJdGVtKGluZGV4OiBudW1iZXIsIGRhdGE6IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW1EYXRhTGlzdFtpbmRleF0gPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoq6I635Y+W56ys5LiA5LiqSXRlbeeahOS9jee9riAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVDb250ZW50KCkge1xyXG4gICAgICAgIC8v5pi+56S65YiX6KGo5a6e5L6L5Li6MOS4qlxyXG4gICAgICAgIGlmICh0aGlzLml0ZW1MaXN0Lmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRMaXN0UGFyYW0oKTtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVMaXN0KDAsIG5ldyBjYy5WZWMyKDAsIDApKTtcclxuICAgICAgICAgICAgLy/mmL7npLrliJfooajnmoTlrp7kvovkuI3kuLow5Liq77yM5YiZ6ZyA6KaB6YeN5paw5o6S5YiXaXRlbeWunuS+i+aVsOe7hFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi55IC0gYS55O1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS54IC0gYi54O1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLlZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS54IC0gYi54O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGIueSAtIGEueTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi55IC0gYS55O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGEueCAtIGIueDtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jb3VudExpc3RQYXJhbSgpO1xyXG5cclxuICAgICAgICAgICAgLy/ojrflj5bnrKzkuIDkuKppdGVt5a6e5L6L6ZyA6KaB5pi+56S655qE5pWw5o2u57Si5byVXHJcbiAgICAgICAgICAgIHZhciBzdGFydEluZGV4ID0gdGhpcy5pdGVtTGlzdFswXS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcikuaXRlbUluZGV4O1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkICYmIHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggKz0gKHN0YXJ0SW5kZXggKyB0aGlzLnNwYXduQ291bnQpICUgdGhpcy5ncmlkQ29sO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkICYmIHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSAoc3RhcnRJbmRleCArIHRoaXMuc3Bhd25Db3VudCkgJSB0aGlzLmdyaWRSb3c7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vZ2V0U2Nyb2xsT2Zmc2V0KCnlkoxzY3JvbGxUb09mZnNldCgp55qEeOWAvOaYr+ebuOWPjeeahFxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0OiBjYy5WZWMyID0gdGhpcy5zY3JvbGxWaWV3LmdldFNjcm9sbE9mZnNldCgpO1xyXG4gICAgICAgICAgICBvZmZzZXQueCA9IC0gb2Zmc2V0Lng7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUxpc3Qoc3RhcnRJbmRleCwgb2Zmc2V0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoq6ZSA5q+BICovXHJcbiAgICBwdWJsaWMgb25EZXN0cm95KCkge1xyXG4gICAgICAgIC8v5riF55CG5YiX6KGo6aG5XHJcbiAgICAgICAgbGV0IGxlbiA9IHRoaXMuaXRlbUxpc3QubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGNjLmlzVmFsaWQodGhpcy5pdGVtTGlzdFtpXSwgdHJ1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3RbaV0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXRlbUxpc3QubGVuZ3RoID0gMDtcclxuICAgICAgICAvL+a4heeQhuWvueixoeaxoFxyXG4gICAgICAgIGxlbiA9IHRoaXMuaXRlbVBvb2wubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGNjLmlzVmFsaWQodGhpcy5pdGVtUG9vbFtpXSwgdHJ1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbVBvb2xbaV0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXRlbVBvb2wubGVuZ3RoID0gMDtcclxuICAgICAgICAvL+a4heeQhuWIl+ihqOaVsOaNrlxyXG4gICAgICAgIHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcbn1cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/tool/Shake.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '61affD5SO9Ipo0fGmIeTFTZ', 'Shake'); +// Script/tool/Shake.js + +"use strict"; + +/** + * 自定义抖动效果 + */ +var Shake = cc.Class({ + "extends": cc.Component, + properties: { + //抖动时间 + duration: 0, + //X轴抖动范围 + shakeX: 0, + shakeY: 0 + }, + shake: function shake(callback) { + if (this.shaking) { + return; + } + + this.callback = callback; + this.shaking = true; + this.dtCost = 0; + this.nodeInitialPos = this.node.getPosition(); + this.unschedule(this.doSchedule); + this.schedule(this.doSchedule, 0, cc.macro.REPEAT_FOREVER, 0); + }, + doSchedule: function doSchedule(dt) { + var dt2 = dt * 50; + var randX = this.getRandomStrength(-this.shakeX, this.shakeX) * dt2; + var randY = this.getRandomStrength(-this.shakeY, this.shakeY) * dt2; + this.node.setPosition(cc.pAdd(this.nodeInitialPos, cc.v2(randX, randY))); + this.dtCost += dt; + + if (this.dtCost >= this.duration) { + this.unschedule(this.doSchedule); + this.node.setPosition(this.nodeInitialPos); + this.shaking = false; + + if (this.callback) { + this.callback(); + } + } + }, + //获取两个数间的随机值 + getRandomStrength: function getRandomStrength(min, max) { + return Math.random() * (max - min + 1) + min; + } +}); + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFx0b29sXFxTaGFrZS5qcyJdLCJuYW1lcyI6WyJTaGFrZSIsImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwiZHVyYXRpb24iLCJzaGFrZVgiLCJzaGFrZVkiLCJzaGFrZSIsImNhbGxiYWNrIiwic2hha2luZyIsImR0Q29zdCIsIm5vZGVJbml0aWFsUG9zIiwibm9kZSIsImdldFBvc2l0aW9uIiwidW5zY2hlZHVsZSIsImRvU2NoZWR1bGUiLCJzY2hlZHVsZSIsIm1hY3JvIiwiUkVQRUFUX0ZPUkVWRVIiLCJkdCIsImR0MiIsInJhbmRYIiwiZ2V0UmFuZG9tU3RyZW5ndGgiLCJyYW5kWSIsInNldFBvc2l0aW9uIiwicEFkZCIsInYyIiwibWluIiwibWF4IiwiTWF0aCIsInJhbmRvbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxLQUFLLEdBQUdDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ2pCLGFBQVNELEVBQUUsQ0FBQ0UsU0FESztBQUdqQkMsRUFBQUEsVUFBVSxFQUFFO0FBQ1I7QUFDQUMsSUFBQUEsUUFBUSxFQUFFLENBRkY7QUFHUjtBQUNBQyxJQUFBQSxNQUFNLEVBQUUsQ0FKQTtBQUtSQyxJQUFBQSxNQUFNLEVBQUU7QUFMQSxHQUhLO0FBV2pCQyxFQUFBQSxLQUFLLEVBQUUsZUFBVUMsUUFBVixFQUFvQjtBQUN2QixRQUFHLEtBQUtDLE9BQVIsRUFBZ0I7QUFDWjtBQUNIOztBQUNELFNBQUtELFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDQSxTQUFLQyxNQUFMLEdBQWMsQ0FBZDtBQUNBLFNBQUtDLGNBQUwsR0FBc0IsS0FBS0MsSUFBTCxDQUFVQyxXQUFWLEVBQXRCO0FBQ0EsU0FBS0MsVUFBTCxDQUFnQixLQUFLQyxVQUFyQjtBQUNBLFNBQUtDLFFBQUwsQ0FBYyxLQUFLRCxVQUFuQixFQUErQixDQUEvQixFQUFrQ2YsRUFBRSxDQUFDaUIsS0FBSCxDQUFTQyxjQUEzQyxFQUEyRCxDQUEzRDtBQUNILEdBckJnQjtBQXNCakJILEVBQUFBLFVBQVUsRUFBRSxvQkFBVUksRUFBVixFQUFjO0FBQ3RCLFFBQUlDLEdBQUcsR0FBR0QsRUFBRSxHQUFHLEVBQWY7QUFDQSxRQUFJRSxLQUFLLEdBQUcsS0FBS0MsaUJBQUwsQ0FBdUIsQ0FBQyxLQUFLakIsTUFBN0IsRUFBcUMsS0FBS0EsTUFBMUMsSUFBb0RlLEdBQWhFO0FBQ0EsUUFBSUcsS0FBSyxHQUFHLEtBQUtELGlCQUFMLENBQXVCLENBQUMsS0FBS2hCLE1BQTdCLEVBQXFDLEtBQUtBLE1BQTFDLElBQW9EYyxHQUFoRTtBQUNBLFNBQUtSLElBQUwsQ0FBVVksV0FBVixDQUFzQnhCLEVBQUUsQ0FBQ3lCLElBQUgsQ0FBUSxLQUFLZCxjQUFiLEVBQTZCWCxFQUFFLENBQUMwQixFQUFILENBQU1MLEtBQU4sRUFBYUUsS0FBYixDQUE3QixDQUF0QjtBQUNBLFNBQUtiLE1BQUwsSUFBZVMsRUFBZjs7QUFDQSxRQUFJLEtBQUtULE1BQUwsSUFBZSxLQUFLTixRQUF4QixFQUFrQztBQUM5QixXQUFLVSxVQUFMLENBQWdCLEtBQUtDLFVBQXJCO0FBQ0EsV0FBS0gsSUFBTCxDQUFVWSxXQUFWLENBQXNCLEtBQUtiLGNBQTNCO0FBQ0EsV0FBS0YsT0FBTCxHQUFlLEtBQWY7O0FBQ0EsVUFBRyxLQUFLRCxRQUFSLEVBQWlCO0FBQ2IsYUFBS0EsUUFBTDtBQUNIO0FBQ0o7QUFDSixHQXBDZ0I7QUFxQ2pCO0FBQ0FjLEVBQUFBLGlCQUFpQixFQUFFLDJCQUFVSyxHQUFWLEVBQWVDLEdBQWYsRUFBb0I7QUFDbkMsV0FBT0MsSUFBSSxDQUFDQyxNQUFMLE1BQWlCRixHQUFHLEdBQUdELEdBQU4sR0FBWSxDQUE3QixJQUFrQ0EsR0FBekM7QUFDSDtBQXhDZ0IsQ0FBVCxDQUFaIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICog6Ieq5a6a5LmJ5oqW5Yqo5pWI5p6cXHJcbiAqL1xyXG52YXIgU2hha2UgPSBjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcblxyXG4gICAgcHJvcGVydGllczoge1xyXG4gICAgICAgIC8v5oqW5Yqo5pe26Ze0XHJcbiAgICAgICAgZHVyYXRpb246IDAsXHJcbiAgICAgICAgLy9Y6L205oqW5Yqo6IyD5Zu0XHJcbiAgICAgICAgc2hha2VYOiAwLFxyXG4gICAgICAgIHNoYWtlWTogMCxcclxuICAgIH0sXHJcblxyXG4gICAgc2hha2U6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xyXG4gICAgICAgIGlmKHRoaXMuc2hha2luZyl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuc2hha2luZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5kdENvc3QgPSAwO1xyXG4gICAgICAgIHRoaXMubm9kZUluaXRpYWxQb3MgPSB0aGlzLm5vZGUuZ2V0UG9zaXRpb24oKTtcclxuICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5kb1NjaGVkdWxlKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuZG9TY2hlZHVsZSwgMCwgY2MubWFjcm8uUkVQRUFUX0ZPUkVWRVIsIDApO1xyXG4gICAgfSxcclxuICAgIGRvU2NoZWR1bGU6IGZ1bmN0aW9uIChkdCkge1xyXG4gICAgICAgIHZhciBkdDIgPSBkdCAqIDUwO1xyXG4gICAgICAgIHZhciByYW5kWCA9IHRoaXMuZ2V0UmFuZG9tU3RyZW5ndGgoLXRoaXMuc2hha2VYLCB0aGlzLnNoYWtlWCkgKiBkdDI7XHJcbiAgICAgICAgdmFyIHJhbmRZID0gdGhpcy5nZXRSYW5kb21TdHJlbmd0aCgtdGhpcy5zaGFrZVksIHRoaXMuc2hha2VZKSAqIGR0MjtcclxuICAgICAgICB0aGlzLm5vZGUuc2V0UG9zaXRpb24oY2MucEFkZCh0aGlzLm5vZGVJbml0aWFsUG9zLCBjYy52MihyYW5kWCwgcmFuZFkpKSk7XHJcbiAgICAgICAgdGhpcy5kdENvc3QgKz0gZHQ7XHJcbiAgICAgICAgaWYgKHRoaXMuZHRDb3N0ID49IHRoaXMuZHVyYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMuZG9TY2hlZHVsZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zZXRQb3NpdGlvbih0aGlzLm5vZGVJbml0aWFsUG9zKTtcclxuICAgICAgICAgICAgdGhpcy5zaGFraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5Lik5Liq5pWw6Ze055qE6ZqP5py65YC8XHJcbiAgICBnZXRSYW5kb21TdHJlbmd0aDogZnVuY3Rpb24gKG1pbiwgbWF4KSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkgKyBtaW47XHJcbiAgICB9LFxyXG59KTtcclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/GameManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'b0432BA295DjIOcuitdGKO1', 'GameManager'); +// Script/GameManager.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameData_1 = require("./GameData"); +var Notification_1 = require("./Notification"); +var serverAPI_1 = require("./crypto/serverAPI"); +var GameManager = /** @class */ (function (_super) { + __extends(GameManager, _super); + function GameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.ball = null; + _this.qiu1 = null; + _this.qiu2 = null; + _this.qiu3 = null; + _this.linePrefab = null; + _this.hit = null; + _this.bg1 = null; + _this.bg2 = null; + _this.time = null; + // LIFE-CYCLE CALLBACKS: + _this.begin = false; + _this.fuhuo = false; + _this.over = false; + _this.show = false; + _this.levelLabel = null; + return _this; + } + GameManager.prototype.onLoad = function () { + }; + GameManager.prototype.start = function () { + this.fit(); + this.init(); + }; + GameManager.prototype.fit = function () { + this.fitTop = 450; //600 + this.fitBot = -600; //-700 + var jg = this.setFit(); + if (!jg) { + this.fitTop = 600; + this.fitBot = -700; + } + }; + GameManager.prototype.getSetScreenResolutionFlag = function () { + var size = cc.winSize; + var width = size.width; + var height = size.height; + if ((height / width) > (16.2 / 9)) + return false; + return true; + }; + //判断全面屏适配 + GameManager.prototype.setFit = function () { + var flag = this.getSetScreenResolutionFlag(); + if (flag) { + } + else { + } + return flag; + }; + //初始化数据 + GameManager.prototype.init = function () { + this.node.getChildByName("GameOver").zIndex = 100; + this.node.getChildByName("GameOver").active = false; + this.ball.zIndex = 100; + this.bg1 = this.node.getChildByName("bg1"); + this.bg2 = this.node.getChildByName("bg2"); + this.time = this.node.getChildByName("Top").getChildByName("time").getComponent(cc.Label); + this.node.getChildByName("showBtn").active = false; + this.begin = false; + this.over = false; + this.fuhuo = true; + this.pause = true; + this.show = false; + this.round = 0; + this.level = 2; + this.countTime = 60; + if (GameData_1.default._instance.GM_INFO.custom != 0) { + this.level = GameData_1.default._instance.GM_INFO.custom; + // this.levelLabel.string = this.level + ""; + GameData_1.default._instance.GM_INFO.custom += 1; + this.countTime = 12000000; + } + // this.levelLabel.string = this.level + ""; + this.timeCount = 0.1; + this.clickNow = 0; + this.clickCount = 0; + this.timeStart = 0; + this.repeat = -1; + this.numberRepeat = -1; + this.route_Array = []; + this.moveArray = []; + this.now_Array = []; + this.ball_Array = []; + this.Pos_Array = []; + this.time_Array = []; + this.color_Array = []; + GameData_1.default._instance.GAME_DATA = []; + GameData_1.default._instance.GM_INFO.success = false; + this.startTime = 0; + this.overTime = 0; + this.winTime = 0; + GameData_1.default._instance.GM_INFO.total = 0; + GameData_1.default._instance.GM_INFO.mean_Time = 0; + this.schedule(this.updateCountDownTime, 1); + this.startGame(); + }; + GameManager.prototype.backScene = function () { + cc.director.loadScene("LoadScene"); + }; + //下一关,或者重新开始,或者返回上一关,根据level决定 + GameManager.prototype.reStart = function (type) { + // if(GameData._instance.GM_INFO.custom != 0){ + // cc.director.loadScene("LoadScene"); + // return; + // } + this.node.getChildByName("showBtn").active = false; + this.destroyLine(); + this.timeCount = 0.1; + this.clickNow = 0; + this.timeStart = 0; + this.repeat = -1; + this.numberRepeat = -1; + this.begin = false; + this.route_Array = []; + this.now_Array = []; + this.ball_Array = []; + this.Pos_Array = []; + this.moveArray = []; + this.time_Array = []; + this.color_Array = []; + if (type == 0) { + this.bgMove(1); + } + else if (type == 1) { + this.startGame(); + } + else if (type == 2) { + this.bgMove(-1); + } + }; + GameManager.prototype.begin_Guide = function () { + }; + //获取时间戳 + GameManager.prototype.getTime = function () { + var timestamp = new Date().getTime(); + return timestamp; + }; + //获胜 + GameManager.prototype.passLevel = function () { + var _this = this; + this.destroyLine(); + if (this.over == false && this.countTime >= 0) { + var timeArray_1 = []; + var timeCount = 0; + var ball_1 = this.ball_Array[0]; + for (var i = 1; i < this.ball_Array.length; i++) { + var time = this.calculateDistance2(this.ball_Array[i].x, this.ball_Array[i].y, this.ball_Array[i - 1].x, this.ball_Array[i - 1].y); + timeArray_1.push(time); + } + var _loop_1 = function (k) { + setTimeout(function () { + cc.tween(ball_1) + .to(timeArray_1[k - 1], { x: _this.ball_Array[k].x, y: _this.ball_Array[k].y }) + .call(function () { + _this.ball_Array[k].active = false; + if (k == _this.ball_Array.length - 1) { + setTimeout(function () { + _this.ball.opacity = 255; + _this.ball.position = cc.v3(ball_1.x, ball_1.y, 0); + ball_1.active = false; + _this.clearSun(); + _this.reStart(0); + }, 200); + } + }) + .start(); + }, timeCount * 1000); + timeCount += (timeArray_1[k - 1] + 0.1); + }; + for (var k = 1; k < this.ball_Array.length; k++) { + _loop_1(k); + } + } + }; + //失败 + GameManager.prototype.loseLevel = function (type) { + var _this = this; + this.destroyLine(); + if (this.over == false && this.countTime >= 0) { + var ball_2 = this.ball_Array[0]; + var _loop_2 = function (k) { + cc.tween(this_1.ball_Array[k]) + .to(2, { x: ball_2.x, y: ball_2.y }) + .call(function () { + _this.ball_Array[k].active = false; + if (k == _this.ball_Array.length - 1) { + _this.ball.opacity = 255; + _this.ball.position = cc.v3(ball_2.x, ball_2.y, 0); + _this.clearSun(); + _this.reStart(type); + } + }) + .start(); + }; + var this_1 = this; + for (var k = 1; k < this.ball_Array.length; k++) { + _loop_2(k); + } + } + }; + GameManager.prototype.clearSun = function () { + for (var k = 0; k < this.ball_Array.length; k++) { + this.ball_Array[k].removeFromParent(); + this.ball_Array[k] = null; + } + }; + //点击太阳执行方法 + GameManager.prototype.clickSun = function (data) { + var _this = this; + if (this.begin == true) { + this.clickCount += 1; + var clickTime = this.getTime(); + this.time_Array.push((clickTime - this.timeStart)); + this.timeStart = this.getTime(); + if (data == this.clickNow) { + GameData_1.default._instance.AudioManager.playAudioButton(); + if (this.clickNow > 0) { + this.createLine(cc.v2(this.ball_Array[this.clickNow - 1].x, this.ball_Array[this.clickNow - 1].y), cc.v2(this.ball_Array[this.clickNow].x, this.ball_Array[this.clickNow].y), 0.2); + } + this.clickNow += 1; + // GameData._instance.GM_INFO.total += 1; + if (this.ball_Array[this.clickNow - 1]) + this.ball_Array[this.clickNow - 1].getChildByName("guang").active = false; + // setTimeout(() => { + // }, 200); + if (this.clickNow == this.now_Array.length) { + this.pause = true; + GameData_1.default._instance.GM_INFO.total += this.clickNow; + this.overTime = this.getTime(); + if (this.startTime > 0 && this.overTime > 0) { + GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); + } + // console.log("成功",GameData._instance.GM_INFO.mean_Time,this.overTime,this.startTime); + // console.log(GameData._instance.GM_INFO.mean_Time); + var finish_time = parseInt((this.overTime - this.startTime) / 100 + ""); + this.startTime = 0; + this.overTime = 0; + // console.log("33333333"); + var color = "y"; + if (this.level < 4 && this.level > 1) + color = "yr"; + else if (this.level >= 4) + color = "yrb"; + var win_1 = this.node.getChildByName("Win"); + win_1.active = true; + win_1.setScale(0); + GameData_1.default._instance.AudioManager.playWin(); + this.round += 1; + var sunArray = []; + if (this.moveArray.length > 0) { + for (var m = 0; m < this.moveArray.length; m++) { + if (m == this.repeat || m == this.numberRepeat) { + this.moveArray[m] = 2; + } + sunArray.push(this.moveArray[m]); + } + } + else { + for (var m = 0; m < this.ball_Array.length; m++) { + if (m == this.repeat || m == this.numberRepeat) { + sunArray.push(2); + } + else + sunArray.push(0); + } + } + GameData_1.default._instance.CLICK_DATA = + { + type: 1, + success: true, + round: this.round, + totalSunCount: this.now_Array.length, + movedSunCount: GameData_1.default._instance.LEVEL_INFO[this.level - 1].moveNumber, + sunSpeed: GameData_1.default._instance.LEVEL_INFO[this.level - 1].moveSpeed, + overlapSunCount: GameData_1.default._instance.LEVEL_INFO[this.level - 1].repeat, + colorList: this.color_Array, + duration: finish_time / 10, + difficultyLevel: this.level, + sunList: sunArray, + stepTimeList: this.time_Array, + remainder: this.countTime + }; + this.outPut(); + this.setData(); + cc.tween(win_1) + .delay(0.4) + .to(0.01, { scale: 2.5 }) + .to(0.35, { scale: 1 }) + .delay(0.4) + .call(function () { + win_1.active = false; + _this.destroyLine(); + if (_this.over == false && _this.countTime >= 0) { + if (_this.level >= 15) { + GameData_1.default._instance.GM_INFO.success = true; + _this.level += 0; + // this.levelLabel.string = this.level + ""; + _this.fuhuo = true; + _this.passLevel(); + } + else { + _this.level += 1; + // this.levelLabel.string = this.level + ""; + _this.fuhuo = true; + _this.passLevel(); + } + } + }) + .start(); + } + } + else { + this.setLoss(); + } + // this.hitAction(data) + } + }; + GameManager.prototype.setLoss = function () { + GameData_1.default._instance.AudioManager.playWarning(); + this.begin = false; + this.overTime = this.getTime(); + if (this.startTime > 0 && this.overTime > 0) { + GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); + } + var finish_time = parseInt((this.overTime - this.startTime) / 100 + ""); + this.startTime = 0; + this.overTime = 0; + var color = "y"; + if (this.level < 4 && this.level > 1) + color = "yr"; + else if (this.level >= 4) + color = "yrb"; + this.round += 1; + var sunArray = []; + if (this.moveArray.length > 0) { + for (var m = 0; m < this.moveArray.length; m++) { + if (m == this.repeat || m == this.numberRepeat) { + this.moveArray[m] = 2; + } + sunArray.push(this.moveArray[m]); + } + } + else { + for (var m = 0; m < this.ball_Array.length; m++) { + if (m == this.repeat || m == this.numberRepeat) { + sunArray.push(2); + } + else + sunArray.push(0); + } + } + GameData_1.default._instance.CLICK_DATA = + { + type: 1, + success: false, + round: this.round, + totalSunCount: this.now_Array.length, + movedSunCount: GameData_1.default._instance.LEVEL_INFO[this.level - 1].moveNumber, + sunSpeed: GameData_1.default._instance.LEVEL_INFO[this.level - 1].moveSpeed, + overlapSunCount: GameData_1.default._instance.LEVEL_INFO[this.level - 1].repeat, + colorList: this.color_Array, + duration: finish_time / 10, + difficultyLevel: this.level, + sunList: sunArray, + stepTimeList: this.time_Array, + remainder: this.countTime + }; + this.outPut(); + this.setData(); + if (this.fuhuo == true) { + this.fuhuo = false; + this.loseLevel(1); + } + else { + if (this.level > 2) { + this.level -= 1; + // this.levelLabel.string = this.level + ""; + this.fuhuo = true; + // this.fuhuo = false; + this.loseLevel(2); + } + else { + this.loseLevel(1); + } + } + var over = this.node.getChildByName("Over"); + cc.tween(over) + .to(0.25, { opacity: 255 }) + .delay(0.1) + .to(0.2, { opacity: 0 }) + .delay(0.1) + .to(0.15, { opacity: 255 }) + .delay(0.1) + .to(0.1, { opacity: 0 }) + .start(); + }; + GameManager.prototype.hitAction = function (data) { + var _this = this; + this.hit.active = true; + this.hit.opacity = 0; + this.hit.setPosition; + this.hit.setPosition(this.ball_Array[data].x + 35, this.ball_Array[data].y + 35); + cc.tween(this.hit) + .to(0, { opacity: 255 }) + .to(0.2, { position: cc.v3(this.hit.x - 35, this.hit.y - 35, 0) }) + .delay(0.2) + .to(0.1, { opacity: 0 }) + .call(function () { + _this.hit.active = false; + }) + .start(); + }; + //开始游戏 + GameManager.prototype.startGame = function () { + if (this.over == false && this.countTime > 0) { + this.pause = true; + this.createSun(); + this.begin = false; + cc.tween(this.ball) + .to(0.5, { opacity: 255, scale: 1.3 }) + .start(); + // this.runGame() + } + }; + GameManager.prototype.runGame = function () { + var _this = this; + var time = -650; + var _loop_3 = function (i) { + time = this_2.now_Array[i].time * 1000 + time; + setTimeout(function () { + if (_this.over == false) { + var temp = _this.now_Array[i].timeCount; + if (temp > 0.5) + temp = 0.5; + if (i != 0) { + if (_this.ball && _this.now_Array[i]) { + _this.createLine(cc.v2(_this.ball.x, _this.ball.y), cc.v2(_this.now_Array[i].x, _this.now_Array[i].y), _this.now_Array[i].time - temp); + } + } + cc.tween(_this.ball) + .to(_this.now_Array[i].time - temp, { x: _this.now_Array[i].x, y: _this.now_Array[i].y }) + .to(0.1, { scale: 1 }) + .call(function () { + _this.createBall(i, _this.now_Array[i].color, _this.now_Array[i].speed, _this.now_Array[i].repeat); + if (i == _this.now_Array.length - 1) { + _this.ball.opacity = 0; + setTimeout(function () { + _this.destroyLine(); + _this.beginGame(); + if (GameData_1.default._instance.LEVEL_INFO[_this.level - 1].moveNumber < 1) { + _this.pause = false; + } + else { + _this.moveAction(); + } + }, 150); + } + }) + .start(); + } + }, time); + }; + var this_2 = this; + for (var i = 0; i < this.now_Array.length; i++) { + _loop_3(i); + } + }; + GameManager.prototype.createMove = function () { + var _this = this; + if (this.over == false) { + var info = GameData_1.default._instance.LEVEL_INFO[this.level - 1]; + //改变移动速度 + var speed = 7; + if (info.moveSpeed >= 2) { + speed = 7 - info.moveSpeed / 2; + } + if (info.repeat == 1) { + this.repeat = parseInt((Math.random() * (info.number - 1) + 1) + ""); + var tempNumber = 0; + // this.repeat = 4; + if (this.repeat > 4) { + this.numberRepeat = parseInt(Math.random() * 4 + ""); + if (this.repeat == (info.number - 1)) //如果是最后一个 不能跟第一个重叠 + this.numberRepeat = this.repeat - parseInt((Math.random() * 3 + 2) + ""); + tempNumber = this.Pos_Array[this.numberRepeat]; + this.Pos_Array[this.repeat] = tempNumber; + } + else { // 0 1 2 3 4 5 + // 6 - 3 - 1 = 2 4 01 4 + if (this.repeat == 0) + this.repeat = 1; + if ((info.number - 1 - this.repeat) == 2) { + this.numberRepeat = info.number - 1; + tempNumber = this.Pos_Array[this.numberRepeat]; + } + else if ((info.number - 1 - this.repeat) == 1) { + this.numberRepeat = this.repeat - 2; + tempNumber = this.Pos_Array[this.numberRepeat]; + } + else if ((info.number - 1 - this.repeat) == 0) { + this.numberRepeat = this.repeat - 2; + tempNumber = this.Pos_Array[this.numberRepeat]; + } + else if ((info.number - 1 - this.repeat) > 2) { + this.numberRepeat = parseInt(Math.random() * (info.number - this.repeat - 2) + "") + this.repeat + 2; + tempNumber = this.Pos_Array[this.numberRepeat]; + } + else { + this.numberRepeat = this.repeat - 2; + tempNumber = this.Pos_Array[this.numberRepeat]; + } + this.Pos_Array[this.repeat] = tempNumber; + } + } + if (info.moveNumber > 0) { + //0 1 2 3 4 5 6 7 8 9 + //可移动区分 + var pos_1 = cc.v2(0, 0); + for (var z = 0; z < info.number; z++) { + this.moveArray[z] = 0; + } + for (var p = 0; p < info.moveNumber; p++) { + this.moveArray[info.number - 1 - p] = 1; + } + var timeOut = 0; + //打乱可移动顺序 + this.moveArray.sort(function () { return Math.random() - 0.5; }); + if (this.moveArray[0] == 1) { + for (var r = info.number - 1; r >= 0; r--) { + if (this.moveArray[r] == 0) { + this.moveArray[r] = 1; + this.moveArray[0] = 0; + r = -1; + } + } + } + // debugger; + //设置重叠 + // this.repeat = -1; + // this.numberRepeat = -1; + //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7 + for (var k = 0; k < this.moveArray.length; k++) { + if (this.moveArray[k] == 1 && (k == this.repeat || k == this.numberRepeat)) { + for (var m = this.moveArray.length - 1; m >= 0; m--) { + if (m != k && this.moveArray[m] == 0 && m != this.repeat && m != this.numberRepeat) { + this.moveArray[m] = 1; + this.moveArray[k] = 0; + m = -1; + } + } + } + } + var _loop_4 = function (i) { + if (this_3.moveArray[i] == 1) { + timeOut += 1; + setTimeout(function () { + pos_1 = _this.getPos2(true, i); + _this.Pos_Array[i] = pos_1; + }, timeOut * 300); + } + }; + var this_3 = this; + for (var i = 0; i < this.Pos_Array.length; i++) { + _loop_4(i); + } + } + } + }; + //移动后数据 重新刷一遍赋值 + GameManager.prototype.updateArray = function () { + for (var i = 0; i < this.now_Array.length - 1; i++) { + this.now_Array[i].x = this.Pos_Array[i].x; + this.now_Array[i].y = this.Pos_Array[i].y; + } + }; + //太阳初始化后移动方法 + GameManager.prototype.moveAction = function () { + var _this = this; + this.updateArray(); + var moveArray = this.moveArray; + var info = GameData_1.default._instance.LEVEL_INFO[this.level - 1]; + //改变移动速度 + var speed = 7; + if (info.moveSpeed >= 2) { + speed = 7 - info.moveSpeed / 2; + } + if (info.moveNumber > 0) { + //0 1 2 3 4 5 6 7 8 9 + //可移动区分 + var pos = cc.v2(0, 0); + // this.repeat = -1; + // this.numberRepeat = -1; + //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7 + for (var k = 0; k < this.moveArray.length; k++) { + if (this.moveArray[k] == 1 && (k == this.repeat || k == this.numberRepeat)) { + for (var m = this.moveArray.length - 1; m >= 0; m--) { + if (m != k && this.moveArray[m] == 0 && m != this.repeat && m != this.numberRepeat) { + this.moveArray[m] = 1; + this.moveArray[k] = 0; + m = -1; + } + } + } + } + var lastNumber = 0; + //锁定最后一个可移动的 + for (var j = 0; j < moveArray.length; j++) { + if (moveArray[j] == 1) { + lastNumber = j; + } + } + var _loop_5 = function (i) { + if (moveArray[i] == 1) { + if (i != lastNumber) { //如果不是最后一个移动的 + var time = speed * this_4.calculateDistance3(this_4.ball_Array[i].x, this_4.ball_Array[i].y, this_4.Pos_Array[i].x, this_4.Pos_Array[i].y); + this_4.ball_Array[i].getComponent("Sun").move = true; + cc.tween(this_4.ball_Array[i]) + .to(time, { position: this_4.Pos_Array[i] }) + .call(function () { + _this.ball_Array[i].getComponent("Sun").move = false; + }) + .start(); + } + //如果是最后一个 + else { + var time = speed * this_4.calculateDistance3(this_4.ball_Array[i].x, this_4.ball_Array[i].y, this_4.Pos_Array[i].x, this_4.Pos_Array[i].y); + this_4.ball_Array[i].getComponent("Sun").move = true; + cc.tween(this_4.ball_Array[i]) + .to(time, { position: this_4.Pos_Array[i] }) + .call(function () { + _this.ball_Array[i].getComponent("Sun").move = false; + }) + .start(); + } + } + }; + var this_4 = this; + for (var i = 0; i < this.ball_Array.length; i++) { + _loop_5(i); + } + } + }; + GameManager.prototype.beginGame = function () { + this.begin = true; + this.startTime = this.getTime(); + this.timeStart = this.getTime(); + this.pause = false; + // this.node.getChildByName("showBtn").active = true; + }; + GameManager.prototype.getRandomArray = function (lastNumber) { + var num = parseInt(Math.random() * 8 - 4 + ""); + var jg = num + lastNumber; + if (num > 1 || num < -1) { + if (num == 0 || (jg < 0 || jg >= this.Pos_Array.length)) { + jg = this.getRandomArray(lastNumber); + } + } + else { + jg = this.getRandomArray(lastNumber); + } + return jg; + }; + //创建太阳所需数据 + GameManager.prototype.createSun = function () { + var _this = this; + var levelData = GameData_1.default._instance.LEVEL_INFO[this.level - 1]; + var tiemOut = 0; + var _loop_6 = function (l) { + tiemOut += 1; + setTimeout(function () { + if (_this.over == false) { + var pos = _this.getPos(false, l); + _this.Pos_Array.push(pos); + if (_this.Pos_Array.length == levelData.number) { + _this.createMove(); + _this.createPos(); + } + } + }, tiemOut * 100); + }; + for (var l = 0; l < levelData.number; l++) { + _loop_6(l); + } + // 0 0 0 0 0 0 0 0 0 0 0 + }; + GameManager.prototype.createPos = function () { + var data = { x: this.ball.x, y: this.ball.y, time: 0, timeCount: 0, color: 0, speed: 0, repeat: false }; + var levelData = GameData_1.default._instance.LEVEL_INFO[this.level - 1]; + //颜色区分 + var colorArray = [0, 1]; + for (var j = 0; j < levelData.number - 2; j++) { + var colorTemp = parseInt(Math.random() * 3 + ""); + if (levelData.number < 6 && colorTemp == 2) + colorTemp = 0; + colorArray.push(colorTemp); + colorArray.sort(function () { return Math.random() - 0.5; }); + } + colorArray.sort(function () { return Math.random() - 0.5; }); + if (levelData.number == 4) + colorArray = [0, 0, 0, 0]; + this.color_Array = colorArray; + for (var i = 0; i < levelData.number; i++) { + var timeCount = this.timeCount + (0.6 - this.calculateDistance(this.ball.x, this.ball.y, this.Pos_Array[i].x, this.Pos_Array[i].y)); + var time = this.calculateDistance(this.ball.x, this.ball.y, this.Pos_Array[i].x, this.Pos_Array[i].y) + timeCount; + data = { x: this.Pos_Array[i].x, y: this.Pos_Array[i].y, time: time, timeCount: timeCount, color: colorArray[i], speed: levelData.moveSpeed, repeat: false }; + if (this.repeat == i) { + data.repeat = true; + } + else if (this.numberRepeat == i) { + data.repeat = true; + } + this.now_Array.push(data); + } + this.runGame(); + }; + GameManager.prototype.getPos = function (type, num) { + var posX = Math.random() * 620 - 310; + var posY = Math.random() * (this.fitTop - this.fitBot) + this.fitBot; + var point = cc.v2(posX, posY); + if (this.Pos_Array.length > 0) { + for (var i = 0; i < this.Pos_Array.length; i++) { + var distance = false; + var pd = false; + if (i == num) + pd = true; + distance = this.getDistance(posX, posY, this.Pos_Array[i].x, this.Pos_Array[i].y, pd); + if (distance == false) { + i = 10000; + point = this.getPos(type, num); + } + if (distance == true && i == (this.Pos_Array.length - 1)) { + i = 10000; + } + } + } + return point; + }; + GameManager.prototype.getPos2 = function (type, num) { + var posX = Math.random() * 620 - 310; + var posY = Math.random() * (this.fitTop - this.fitBot) + this.fitBot; + var point = cc.v2(posX, posY); + if (this.Pos_Array.length > 0) { + for (var i = 0; i < this.Pos_Array.length; i++) { + var distance = false; + var pd = false; + if (i == num) + pd = true; + distance = this.getDistance2(posX, posY, this.Pos_Array[i].x, this.Pos_Array[i].y, pd); + if (distance == false) { + i = 10000; + point = this.getPos2(type, num); + } + if (distance == true && i == (this.Pos_Array.length - 1)) { + i = 10000; + } + } + } + return point; + }; + GameManager.prototype.getDistance = function (x1, y1, x2, y2, num) { + var jg = false; + var dx = x2 - x1; + var dy = y2 - y1; + var distance = Math.sqrt(dx * dx + dy * dy); + if (distance > 160) { + if (num == true) { + if (distance < GameData_1.default._instance.LEVEL_INFO[this.level - 1].maxMove) { + jg = true; + } + else + jg = false; + } + else { + if (distance < GameData_1.default._instance.LEVEL_INFO[this.level - 1].maxMove) { + jg = true; + } + else + jg = false; + } + } + return jg; + }; + GameManager.prototype.getDistance2 = function (x1, y1, x2, y2, num) { + var jg = false; + var dx = x2 - x1; + var dy = y2 - y1; + var distance = Math.sqrt(dx * dx + dy * dy); + if (distance > 160) { + if (num == true) { + if (distance < GameData_1.default._instance.LEVEL_INFO[this.level - 1].maxDistance) + jg = true; + else + jg = false; + } + else { + jg = true; + } + } + return jg; + }; + GameManager.prototype.createBall = function (number, color, speed, repeat) { + var ball = null; + if (color == 0) + ball = cc.instantiate(this.qiu1); + else if (color == 1) + ball = cc.instantiate(this.qiu2); + else if (color == 2) + ball = cc.instantiate(this.qiu3); + ball.parent = this.node.getChildByName("Sun"); + ball.zIndex = this.now_Array.length - number; + ball.setPosition(this.ball.x, this.ball.y); + ball.getComponent("Sun").init(number, color, speed, repeat); + this.ball_Array.push(ball); + }; + GameManager.prototype.destroyLine = function () { + for (var i = 0; i < this.node.getChildByName("Line").children.length; i++) { + if (this.node.getChildByName("Line").children[i]) { + this.node.getChildByName("Line").children[i].removeFromParent(); + this.node.getChildByName("Line").children[i] = null; + } + } + this.node.getChildByName("Line").removeAllChildren(); + }; + GameManager.prototype.createLine = function (start, end, time) { + var line = cc.instantiate(this.linePrefab); + line.parent = this.node.getChildByName("Line"); + line.setPosition(start.x, start.y); + var dx = end.x - start.x; + var dy = end.y - start.y; + var distance = Math.sqrt(dx * dx + dy * dy); + line.height = distance; + line.getComponent(cc.Sprite).fillRange = 0; + line.angle = -this.calculateAngle(start.x, start.y, end.x, end.y); + cc.tween(line.getComponent(cc.Sprite)) + .to(time, { fillRange: 1 }) + .start(); + }; + GameManager.prototype.calculateAngle = function (x1, y1, x2, y2) { + var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI - 90; + return -angle; + }; + GameManager.prototype.calculateDistance = function (x1, y1, x2, y2) { + var dx = x2 - x1; + var dy = y2 - y1; + var distance = Math.sqrt(dx * dx + dy * dy); + if (distance > 800) + distance = 800; + var time = distance / 800 * 0.6; + return time; + }; + GameManager.prototype.calculateDistance2 = function (x1, y1, x2, y2) { + var dx = x2 - x1; + var dy = y2 - y1; + var distance = Math.sqrt(dx * dx + dy * dy); + if (distance > 1200) + distance = 1200; + var time = distance / 1200 * 1; + return time; + }; + GameManager.prototype.calculateDistance3 = function (x1, y1, x2, y2) { + var dx = x2 - x1; + var dy = y2 - y1; + var distance = Math.sqrt(dx * dx + dy * dy); + if (distance > 1200) + distance = 1200; + var time = distance / 1200 * 1.5; + return time; + }; + //背景移动 + GameManager.prototype.bgMove = function (type) { + var _this = this; + var random = Math.random() * 300 + 300; + var posX = Math.random() * 600 - 300; + var y1 = this.bg1.y - random * type; + // let y2 = this.bg2.y - random*type; + var time1 = 0.7 * (random / 400); + cc.tween(this.ball) + .to(0.3, { scale: 1.3 }) + .to(time1, { x: posX }) + .start(); + cc.tween(this.bg1) + .delay(0.3) + .to(time1, { y: y1 }) + .start(); + // cc.tween(this.bg2) + // .delay(0.3) + // .to(time1,{y:y2}) + // .start(); + setTimeout(function () { + // if(this.over == false && GameData._instance.GM_INFO.custom == 0){ + // this.startGame(); + // } + if (_this.over == false) { + _this.startGame(); + } + }, time1 * 1500); + }; + //时间格式转换 + GameManager.prototype.getTimeMargin = function (second) { + var total = 0; + total = second; + var hour = 0; + hour = parseInt((total / 3600) + ""); //计算整数小时数 + var afterHour = total - hour * 60 * 60; //取得算出小时数后剩余的秒数 + var min = parseInt((afterHour / 60) + ""); //计算整数分 + var m = "" + min; + if (min < 10) + m = "0" + min; + var afterMin = total - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + ""; + if (afterMin < 10) + miao = "0" + afterMin; + return m + ':' + miao; + }; + //如果是倒计时 调用此方法 + GameManager.prototype.updateCountDownTime = function () { + if (this.countTime > 0 && this.pause == false) { + this.countTime -= 1; + this.time.string = this.getTimeMargin(this.countTime); + if (this.countTime < 5) { + cc.tween(this.time.node) + .to(0.25, { scale: 1.5, color: cc.color(255, 0, 0) }) + .to(0.25, { scale: 1, color: cc.color(255, 255, 255) }) + .start(); + var over = this.node.getChildByName("Over"); + cc.tween(over) + .to(0.2, { opacity: 255 }) + .delay(0.1) + .to(0.2, { opacity: 0 }) + .start(); + } + if (this.countTime <= 0) { + this.begin = false; + this.over = true; + this.unschedule(this.updateCountDownTime); + this.setLoss(); + var time = 0; + // console.log(GameData._instance.GM_INFO.mean_Time,this.clickCount); + if (this.clickCount > 0) + time = parseInt(GameData_1.default._instance.GM_INFO.mean_Time / this.clickCount + ""); + GameData_1.default._instance.GM_INFO.mean_Time = parseInt(time / 100 + ""); + GameData_1.default._instance.GM_INFO.mean_Time = GameData_1.default._instance.GM_INFO.mean_Time / 10; + // console.log( GameData._instance.GM_INFO.mean_Time,time); + // debugger; + if (time > 10000) + time = (Math.random() * 10 + 5) * 100; + this.setRank(time); + } + } + }; + GameManager.prototype.setData = function () { + var data = GameData_1.default._instance.GAME_DATA; + var matchId = this.getMatchId(); + console.log(matchId); + var postData = { + "matchId": matchId, + "data": data + }; + console.log("上传数据:"); + serverAPI_1.default.uploadUserLogData(postData, function () { }); + }; + GameManager.prototype.getMatchId = function () { + var matchId = cc.sys.localStorage.getItem("matchId"); + if (matchId == "undifend" || matchId == null) { + matchId = this.setMatchId(); + } + else { + if (this.containsNanana(matchId) == true) { + matchId = this.setMatchId(); + } + else { + var char = parseInt(matchId[10]); + if (this.round == 1) { + char += 1; + } + matchId = matchId.slice(0, 10) + char + ""; + GameData_1.default._instance.GM_INFO.matchId = matchId; + cc.sys.localStorage.setItem("matchId", matchId); + } + } + return matchId; + }; + GameManager.prototype.containsNanana = function (str) { + return /na/i.test(str); + }; + GameManager.prototype.setMatchId = function () { + // 定义包含可用字符的字符集 + var characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + // 创建一个数组以保存随机字符 + var uuidArray = []; + // 循环10次 生成10位的UUID + for (var i = 0; i < 10; i++) { + // 生成随机索引,范围是字符集的长度 + var randomIndex = Math.floor(Math.random() * characters.length); + // 从字符集中获取随机字符 + var randomChar = characters.charAt(randomIndex); + // 将字符添加到数组中 + uuidArray.push(randomChar); + } + var data = uuidArray.join('') + 1 + ""; + cc.sys.localStorage.setItem("matchNumber", 1); + cc.sys.localStorage.setItem("matchId", data); + GameData_1.default._instance.GM_INFO.matchId = data; + return data; + }; + GameManager.prototype.setRank = function (time) { + var postData = { + "type": 1, + "reactionTime": time, + "totalSunCount": GameData_1.default._instance.GM_INFO.total, + "success": GameData_1.default._instance.GM_INFO.success + }; + // console.log(postData); + serverAPI_1.default.rankData(1, function () { }, postData); + this.node.getChildByName("GameOver").active = true; + this.node.getChildByName("GameOver").opacity = 0; + cc.tween(this.node.getChildByName("GameOver")) + .to(0.4, { opacity: 255 }) + .delay(2) + .to(0.4, { opacity: 50 }) + .call(function () { + cc.director.loadScene("OverScene"); + }) + .start(); + }; + GameManager.prototype.outPut = function () { + var data = GameData_1.default._instance.CLICK_DATA; + GameData_1.default._instance.GAME_DATA = []; + GameData_1.default._instance.GAME_DATA.push(GameData_1.default._instance.CLICK_DATA); + GameData_1.default._instance.CLICK_init(); + }; + GameManager.prototype.showNumber = function () { + if (this.show == false) + this.show = true; + else if (this.show == true) + this.show = false; + for (var i = 0; i < this.ball_Array.length; i++) { + this.ball_Array[i].getComponent("Sun").showNumber(this.show); + } + }; + GameManager.prototype.onEnable = function () { + Notification_1.Notification.on("clickSun", this.clickSun, this); + // Notification.on("HammerPlay", this.HammerPlay, this); + }; + GameManager.prototype.onDisable = function () { + // Notification.off("rightAnswers", this.rightAnswers); + Notification_1.Notification.off("clickSun", this.clickSun); + }; + GameManager.prototype.update = function (dt) { + }; + __decorate([ + property(cc.Node) + ], GameManager.prototype, "ball", void 0); + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "qiu1", void 0); + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "qiu2", void 0); + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "qiu3", void 0); + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "linePrefab", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "hit", void 0); + __decorate([ + property(cc.Label) + ], GameManager.prototype, "levelLabel", void 0); + GameManager = __decorate([ + ccclass + ], GameManager); + return GameManager; +}(cc.Component)); +exports.default = GameManager; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUMxQyx1Q0FBa0M7QUFDbEMsK0NBQThDO0FBQzlDLGdEQUEwQztBQUUxQztJQUF5QywrQkFBWTtJQUFyRDtRQUFBLHFFQXFuQ0M7UUFsbkNHLFVBQUksR0FBWSxJQUFJLENBQUM7UUFFckIsVUFBSSxHQUFjLElBQUksQ0FBQztRQUV2QixVQUFJLEdBQWMsSUFBSSxDQUFDO1FBRXZCLFVBQUksR0FBYyxJQUFJLENBQUM7UUFFdkIsZ0JBQVUsR0FBYyxJQUFJLENBQUM7UUFFN0IsU0FBRyxHQUFZLElBQUksQ0FBQztRQUVwQixTQUFHLEdBQVksSUFBSSxDQUFDO1FBQ3BCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFDcEIsVUFBSSxHQUFhLElBQUksQ0FBQztRQUV0Qix3QkFBd0I7UUFDeEIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFVBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsVUFBSSxHQUFZLEtBQUssQ0FBQztRQXNCdEIsZ0JBQVUsR0FBYSxJQUFJLENBQUM7O0lBd2tDaEMsQ0FBQztJQWhrQ0csNEJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCwyQkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCx5QkFBRyxHQUFIO1FBQ0ksSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMs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QyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFHOUIsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFDaEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9ILElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsQ0FBQztZQUM3RyxJQUFJLEdBQUcsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxTQUFTLENBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsQ0FBQztZQUM5SSxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FB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USxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ0c7SUFFckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzs2Q0FDRztJQUV2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDOzZDQUNHO0lBRXZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7NkNBQ0c7SUFFdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzttREFDUztJQUU3QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzRDQUNFO0lBZ0NwQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO21EQUNTO0lBN0NYLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0FxbkMvQjtJQUFELGtCQUFDO0NBcm5DRCxBQXFuQ0MsQ0FybkN3QyxFQUFFLENBQUMsU0FBUyxHQXFuQ3BEO2tCQXJuQ29CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuaW1wb3J0IEdhbWVEYXRhIGZyb20gJy4vR2FtZURhdGEnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuL05vdGlmaWNhdGlvbic7XHJcbmltcG9ydCBIdHRwVXRpbCBmcm9tICcuL2NyeXB0by9zZXJ2ZXJBUEknO1xyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHYW1lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBiYWxsOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBxaXUxOiBjYy5QcmVmYWIgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHFpdTI6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgcWl1MzogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBsaW5lUHJlZmFiOiBjYy5QcmVmYWIgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBoaXQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIGJnMTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBiZzI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgdGltZTogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG4gICAgYmVnaW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGZ1aHVvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBvdmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBzaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBjb3VudFRpbWU6bnVtYmVyO1xyXG4gICAgdGltZUNvdW50Om51bWJlcjtcclxuICAgIGZpdFRvcDpudW1iZXI7XHJcbiAgICBmaXRCb3Q6bnVtYmVyO1xyXG4gICAgbGV2ZWw6bnVtYmVyO1xyXG4gICAgY2xpY2tOb3c6bnVtYmVyO1xyXG4gICAgc3RhcnRUaW1lOm51bWJlcjtcclxuICAgIG92ZXJUaW1lOm51bWJlcjtcclxuICAgIHdpblRpbWU6bnVtYmVyO1xyXG4gICAgY2xpY2tDb3VudDpudW1iZXI7XHJcbiAgICB0aW1lU3RhcnQ6bnVtYmVyO1xyXG4gICAgcm91dGVfQXJyYXk6IGFueVtdO1xyXG4gICAgbm93X0FycmF5OiBhbnlbXTtcclxuICAgIGJhbGxfQXJyYXk6IGFueVtdO1xyXG4gICAgTGluZV9BcnJheTogYW55W107XHJcbiAgICBQb3NfQXJyYXk6IGFueVtdO1xyXG4gICAgdGltZV9BcnJheTogYW55W107XHJcbiAgICBjb2xvcl9BcnJheTogYW55W107XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxldmVsTGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIG1vdmVBcnJheTogbnVtYmVyW107XHJcbiAgICByZXBlYXQ6IG51bWJlcjtcclxuICAgIG51bWJlclJlcGVhdDogbnVtYmVyO1xyXG4gICAgcm91bmQ6IG51bWJlcjtcclxuICAgIHBhdXNlOiBib29sZWFuO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLmZpdCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG4gICAgZml0KCl7XHJcbiAgICAgICAgdGhpcy5maXRUb3AgPSA0NTA7ICAvLzYwMFxyXG4gICAgICAgIHRoaXMuZml0Qm90ID0gLTYwMDsgLy8tNzAwXHJcbiAgICAgICAgdmFyIGpnID0gdGhpcy5zZXRGaXQoKTtcclxuICAgICAgICBpZighamcpe1xyXG4gICAgICAgICAgICB0aGlzLmZpdFRvcCA9IDYwMDtcclxuICAgICAgICAgICAgdGhpcy5maXRCb3QgPSAtNzAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRTZXRTY3JlZW5SZXNvbHV0aW9uRmxhZyAoKSB7XHJcbiAgICAgICAgbGV0IHNpemUgPSBjYy53aW5TaXplO1xyXG4gICAgICAgIGxldCB3aWR0aCA9IHNpemUud2lkdGg7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IHNpemUuaGVpZ2h0O1xyXG4gICAgICAgIGlmICgoaGVpZ2h0IC8gd2lkdGgpID4gKDE2LjIgLyA5KSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy/liKTmlq3lhajpnaLlsY/pgILphY1cclxuICAgIHNldEZpdCAoKSB7XHJcbiAgICAgICAgbGV0IGZsYWcgPSB0aGlzLmdldFNldFNjcmVlblJlc29sdXRpb25GbGFnKCk7XHJcbiAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmxhZztcclxuICAgIH1cclxuXHJcbiAgICAvL+WIneWni+WMluaVsOaNrlxyXG4gICAgaW5pdCgpe1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVPdmVyXCIpLnpJbmRleCA9IDEwMDtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lT3ZlclwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmJhbGwuekluZGV4ID0gMTAwO1xyXG4gICAgICAgIHRoaXMuYmcxID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmcxXCIpO1xyXG4gICAgICAgIHRoaXMuYmcyID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmcyXCIpO1xyXG4gICAgICAgIHRoaXMudGltZSA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJzaG93QnRuXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYmVnaW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZ1aHVvID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJvdW5kID0gMDsgXHJcbiAgICAgICAgdGhpcy5sZXZlbCA9IDI7XHJcbiAgICAgICAgdGhpcy5jb3VudFRpbWUgPSA2MDtcclxuICAgICAgICBpZihHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b20gIT0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMubGV2ZWwgPSBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b207XHJcbiAgICAgICAgICAgIC8vIHRoaXMubGV2ZWxMYWJlbC5zdHJpbmcgPSB0aGlzLmxldmVsICsgXCJcIjtcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8uY3VzdG9tICs9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRUaW1lID0gMTIwMDAwMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMubGV2ZWxMYWJlbC5zdHJpbmcgPSB0aGlzLmxldmVsICsgXCJcIjtcclxuIFxyXG4gICAgICAgIHRoaXMudGltZUNvdW50ID0gMC4xO1xyXG4gICAgICAgIHRoaXMuY2xpY2tOb3cgPSAwO1xyXG4gICAgICAgIHRoaXMuY2xpY2tDb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy50aW1lU3RhcnQgPSAwO1xyXG4gICAgICAgIHRoaXMucmVwZWF0ID0gLTE7XHJcbiAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSAtMTtcclxuICAgICAgICB0aGlzLnJvdXRlX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5tb3ZlQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLm5vd19BcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuYmFsbF9BcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuUG9zX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy50aW1lX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5jb2xvcl9BcnJheSA9IFtdO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HQU1FX0RBVEEgPSBbXTtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5zdWNjZXNzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMub3ZlclRpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMud2luVGltZSA9IDA7XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwgPSAwO1xyXG5cclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy51cGRhdGVDb3VudERvd25UaW1lLDEpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5zdGFydEdhbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrU2NlbmUoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8v5LiL5LiA5YWz77yM5oiW6ICF6YeN5paw5byA5aeL77yM5oiW6ICF6L+U5Zue5LiK5LiA5YWz77yM5qC55o2ubGV2ZWzlhrPlrppcclxuICAgIHJlU3RhcnQodHlwZSl7XHJcbiAgICAgICAgLy8gaWYoR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8uY3VzdG9tICE9IDApe1xyXG4gICAgICAgIC8vICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwic2hvd0J0blwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lMaW5lKCk7XHJcbiAgICAgICAgdGhpcy50aW1lQ291bnQgPSAwLjE7XHJcbiAgICAgICAgdGhpcy5jbGlja05vdyA9IDA7XHJcbiAgICAgICAgdGhpcy50aW1lU3RhcnQgPSAwO1xyXG4gICAgICAgIHRoaXMucmVwZWF0ID0gLTE7XHJcbiAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSAtMTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmJlZ2luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yb3V0ZV9BcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMubm93X0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5iYWxsX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5Qb3NfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLm1vdmVBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMudGltZV9BcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY29sb3JfQXJyYXkgPSBbXTtcclxuICAgICAgICBcclxuICAgICAgICBpZih0eXBlID09IDApe1xyXG4gICAgICAgICAgICB0aGlzLmJnTW92ZSgxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih0eXBlID09IDEpe1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0R2FtZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHR5cGUgPT0gMil7XHJcbiAgICAgICAgICAgIHRoaXMuYmdNb3ZlKC0xKTtcclxuICAgICAgICB9XHJcbiAgICBcclxuICAgIH1cclxuXHJcbiAgICBiZWdpbl9HdWlkZSgpe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+iOt+WPluaXtumXtOaIs1xyXG4gICAgZ2V0VGltZSgpe1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIHJldHVybiB0aW1lc3RhbXA7XHJcbiAgICB9XHJcblxyXG4gICAgLy/ojrfog5xcclxuICAgIHBhc3NMZXZlbCgpe1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUxpbmUoKTtcclxuICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2UgJiYgdGhpcy5jb3VudFRpbWUgPj0gMCl7XHJcbiAgICAgICAgICAgIGxldCB0aW1lQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgbGV0IHRpbWVDb3VudCA9IDA7XHJcbiAgICAgICAgICAgIGxldCBiYWxsID0gdGhpcy5iYWxsX0FycmF5WzBdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MTsgaTwgdGhpcy5iYWxsX0FycmF5Lmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB0aW1lID0gdGhpcy5jYWxjdWxhdGVEaXN0YW5jZTIodGhpcy5iYWxsX0FycmF5W2ldLngsdGhpcy5iYWxsX0FycmF5W2ldLnksXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2ktMV0ueCx0aGlzLmJhbGxfQXJyYXlbaS0xXS55KTtcclxuICAgICAgICAgICAgICAgIHRpbWVBcnJheS5wdXNoKHRpbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvcihsZXQgaz0xOyBrPCB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBrKyspe1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4oYmFsbClcclxuICAgICAgICAgICAgICAgICAgICAudG8odGltZUFycmF5W2stMV0se3g6dGhpcy5iYWxsX0FycmF5W2tdLngseTp0aGlzLmJhbGxfQXJyYXlba10ueX0pXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoayA9PSB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoLTEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsLnBvc2l0aW9uID0gY2MudjMoYmFsbC54LGJhbGwueSwwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWxsLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJTdW4oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlU3RhcnQoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAyMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgIH0sIHRpbWVDb3VudCoxMDAwKTtcclxuICAgICAgICAgICAgICAgIHRpbWVDb3VudCArPSAodGltZUFycmF5W2stMV0rMC4xKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICAvL+Wksei0pVxyXG4gICAgbG9zZUxldmVsKHR5cGUpe1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUxpbmUoKTtcclxuICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2UgJiYgdGhpcy5jb3VudFRpbWUgPj0gMCl7XHJcbiAgICAgICAgICAgIGxldCBiYWxsID0gdGhpcy5iYWxsX0FycmF5WzBdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGs9MTsgazwgdGhpcy5iYWxsX0FycmF5Lmxlbmd0aDsgaysrKXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbF9BcnJheVtrXSlcclxuICAgICAgICAgICAgICAgIC50bygyLHt4OmJhbGwueCx5OmJhbGwueX0pXHJcbiAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlba10uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoayA9PSB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoLTEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsLnBvc2l0aW9uID0gY2MudjMoYmFsbC54LGJhbGwueSwwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhclN1bigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlU3RhcnQodHlwZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyU3VuKCl7XHJcbiAgICAgICAgZm9yKGxldCBrPTA7IGs8IHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7IGsrKyl7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v54K55Ye75aSq6Ziz5omn6KGM5pa55rOVXHJcbiAgICBjbGlja1N1bihkYXRhKXtcclxuICAgICAgICBpZih0aGlzLmJlZ2luID09IHRydWUpe1xyXG4gICAgICAgICAgICB0aGlzLmNsaWNrQ291bnQgKz0gMTtcclxuICAgICAgICAgICAgbGV0IGNsaWNrVGltZSA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnRpbWVfQXJyYXkucHVzaCgoY2xpY2tUaW1lIC0gdGhpcy50aW1lU3RhcnQpKVxyXG4gICAgICAgICAgICB0aGlzLnRpbWVTdGFydCA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICBpZihkYXRhID09IHRoaXMuY2xpY2tOb3cpe1xyXG4gICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkF1ZGlvTWFuYWdlci5wbGF5QXVkaW9CdXR0b24oKTtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuY2xpY2tOb3cgPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmUoY2MudjIodGhpcy5iYWxsX0FycmF5W3RoaXMuY2xpY2tOb3ctMV0ueCx0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXS55KSxcclxuICAgICAgICAgICAgICAgICAgICBjYy52Mih0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vd10ueCx0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vd10ueSksXHJcbiAgICAgICAgICAgICAgICAgICAgMC4yKTsgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuY2xpY2tOb3cgKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnRvdGFsICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXSlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXS5nZXRDaGlsZEJ5TmFtZShcImd1YW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIH0sIDIwMCk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmNsaWNrTm93ID09IHRoaXMubm93X0FycmF5Lmxlbmd0aCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwgKz0gdGhpcy5jbGlja05vdztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vdmVyVGltZSA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc3RhcnRUaW1lID4gMCAmJiB0aGlzLm92ZXJUaW1lID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSArPSAodGhpcy5vdmVyVGltZSAtIHRoaXMuc3RhcnRUaW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmiJDlip9cIixHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUsdGhpcy5vdmVyVGltZSx0aGlzLnN0YXJ0VGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWVhbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZmluaXNoX3RpbWUgPSBwYXJzZUludCgodGhpcy5vdmVyVGltZSAtIHRoaXMuc3RhcnRUaW1lKS8xMDArXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSAwOyB0aGlzLm92ZXJUaW1lID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjMzMzMzMzMzXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb2xvciA9IFwieVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubGV2ZWwgPCA0ICYmIHRoaXMubGV2ZWwgPiAxKWNvbG9yID0gXCJ5clwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5sZXZlbCA+PSA0KSBjb2xvciA9IFwieXJiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHdpbiA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldpblwiKTtcclxuICAgICAgICAgICAgICAgICAgICB3aW4uYWN0aXZlID0gdHJ1ZTsgd2luLnNldFNjYWxlKDApO1xyXG4gICAgICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5BdWRpb01hbmFnZXIucGxheVdpbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91bmQgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3VuQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBtPTAgOyBtPHRoaXMubW92ZUFycmF5Lmxlbmd0aDttKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobSA9PSB0aGlzLnJlcGVhdCB8fCBtID09IHRoaXMubnVtYmVyUmVwZWF0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVttXSA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5BcnJheS5wdXNoKHRoaXMubW92ZUFycmF5W21dKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IG09MCA7IG08dGhpcy5iYWxsX0FycmF5Lmxlbmd0aDttKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobSA9PSB0aGlzLnJlcGVhdCB8fCBtID09IHRoaXMubnVtYmVyUmVwZWF0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5BcnJheS5wdXNoKDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bkFycmF5LnB1c2goMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEgPSBcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZToxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzczp0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQ6dGhpcy5yb3VuZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsU3VuQ291bnQ6dGhpcy5ub3dfQXJyYXkubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZWRTdW5Db3VudDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVOdW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5TcGVlZDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVTcGVlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXBTdW5Db3VudDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLnJlcGVhdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yTGlzdDp0aGlzLmNvbG9yX0FycmF5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246ZmluaXNoX3RpbWUvMTAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmaWN1bHR5TGV2ZWw6dGhpcy5sZXZlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bkxpc3Q6c3VuQXJyYXksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwVGltZUxpc3Q6dGhpcy50aW1lX0FycmF5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyOnRoaXMuY291bnRUaW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3V0UHV0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4od2luKVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMDEse3NjYWxlOjIuNX0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMzUse3NjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjQpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95TGluZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2UgJiYgdGhpcy5jb3VudFRpbWUgPj0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmxldmVsID49IDE1KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5zdWNjZXNzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxldmVsICs9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5sZXZlbExhYmVsLnN0cmluZyA9IHRoaXMubGV2ZWwgKyBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnVodW8gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZXZlbCArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMubGV2ZWxMYWJlbC5zdHJpbmcgPSB0aGlzLmxldmVsICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZ1aHVvID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvc3MoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyB0aGlzLmhpdEFjdGlvbihkYXRhKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgc2V0TG9zcygpe1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5BdWRpb01hbmFnZXIucGxheVdhcm5pbmcoKTtcclxuICAgICAgICB0aGlzLmJlZ2luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vdmVyVGltZSA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgIGlmKHRoaXMuc3RhcnRUaW1lID4gMCAmJiB0aGlzLm92ZXJUaW1lID4gMCl7XHJcbiAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSArPSAodGhpcy5vdmVyVGltZSAtIHRoaXMuc3RhcnRUaW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGZpbmlzaF90aW1lID0gcGFyc2VJbnQoKHRoaXMub3ZlclRpbWUgLSB0aGlzLnN0YXJ0VGltZSkvMTAwK1wiXCIpO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gMDsgdGhpcy5vdmVyVGltZSA9IDA7XHJcbiAgICAgICAgbGV0IGNvbG9yID0gXCJ5XCI7XHJcbiAgICAgICAgaWYodGhpcy5sZXZlbCA8IDQgJiYgdGhpcy5sZXZlbCA+IDEpY29sb3IgPSBcInlyXCI7XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmxldmVsID49IDQpIGNvbG9yID0gXCJ5cmJcIjtcclxuICAgICAgICB0aGlzLnJvdW5kICs9IDE7XHJcbiAgICAgICAgbGV0IHN1bkFycmF5ID0gW107XHJcbiAgICAgICAgaWYodGhpcy5tb3ZlQXJyYXkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgIGZvcihsZXQgbT0wIDsgbTx0aGlzLm1vdmVBcnJheS5sZW5ndGg7bSsrKXtcclxuICAgICAgICAgICAgICAgIGlmKG0gPT0gdGhpcy5yZXBlYXQgfHwgbSA9PSB0aGlzLm51bWJlclJlcGVhdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQXJyYXlbbV0gPSAyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc3VuQXJyYXkucHVzaCh0aGlzLm1vdmVBcnJheVttXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgZm9yKGxldCBtPTAgOyBtPHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7bSsrKXtcclxuICAgICAgICAgICAgICAgIGlmKG0gPT0gdGhpcy5yZXBlYXQgfHwgbSA9PSB0aGlzLm51bWJlclJlcGVhdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VuQXJyYXkucHVzaCgyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICBzdW5BcnJheS5wdXNoKDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gXHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEgPSBcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6MSxcclxuICAgICAgICAgICAgc3VjY2VzczpmYWxzZSxcclxuICAgICAgICAgICAgcm91bmQ6dGhpcy5yb3VuZCxcclxuICAgICAgICAgICAgdG90YWxTdW5Db3VudDp0aGlzLm5vd19BcnJheS5sZW5ndGgsXHJcbiAgICAgICAgICAgIG1vdmVkU3VuQ291bnQ6R2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk9bdGhpcy5sZXZlbC0xXS5tb3ZlTnVtYmVyLFxyXG4gICAgICAgICAgICBzdW5TcGVlZDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVTcGVlZCxcclxuICAgICAgICAgICAgb3ZlcmxhcFN1bkNvdW50OkdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV0ucmVwZWF0LFxyXG4gICAgICAgICAgICBjb2xvckxpc3Q6dGhpcy5jb2xvcl9BcnJheSxcclxuICAgICAgICAgICAgZHVyYXRpb246ZmluaXNoX3RpbWUvMTAsXHJcbiAgICAgICAgICAgIGRpZmZpY3VsdHlMZXZlbDp0aGlzLmxldmVsLFxyXG4gICAgICAgICAgICBzdW5MaXN0OnN1bkFycmF5LFxyXG4gICAgICAgICAgICBzdGVwVGltZUxpc3Q6dGhpcy50aW1lX0FycmF5LFxyXG4gICAgICAgICAgICByZW1haW5kZXI6dGhpcy5jb3VudFRpbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vdXRQdXQoKTtcclxuICAgICAgICB0aGlzLnNldERhdGEoKTtcclxuICAgICAgICBpZih0aGlzLmZ1aHVvID09IHRydWUpe1xyXG4gICAgICAgICAgICB0aGlzLmZ1aHVvID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubG9zZUxldmVsKDEpO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgaWYodGhpcy5sZXZlbCA+IDIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZXZlbCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5sZXZlbExhYmVsLnN0cmluZyA9IHRoaXMubGV2ZWwgKyBcIlwiO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mdWh1byA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmZ1aHVvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvc2VMZXZlbCgyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb3NlTGV2ZWwoMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG92ZXIgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJPdmVyXCIpO1xyXG4gICAgICAgIGNjLnR3ZWVuKG92ZXIpXHJcbiAgICAgICAgLnRvKDAuMjUse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgIC50bygwLjIse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLmRlbGF5KDAuMSlcclxuICAgICAgICAudG8oMC4xNSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgIC5kZWxheSgwLjEpXHJcbiAgICAgICAgLnRvKDAuMSx7b3BhY2l0eTowfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBoaXRBY3Rpb24oZGF0YSl7XHJcbiAgICAgICAgdGhpcy5oaXQuYWN0aXZlID0gdHJ1ZTsgdGhpcy5oaXQub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5oaXQuc2V0UG9zaXRpb25cclxuICAgICAgICB0aGlzLmhpdC5zZXRQb3NpdGlvbih0aGlzLmJhbGxfQXJyYXlbZGF0YV0ueCszNSx0aGlzLmJhbGxfQXJyYXlbZGF0YV0ueSszNSk7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5oaXQpXHJcbiAgICAgICAgLnRvKDAse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAudG8oMC4yLHtwb3NpdGlvbjpjYy52Myh0aGlzLmhpdC54LTM1LHRoaXMuaGl0LnktMzUsMCl9KVxyXG4gICAgICAgIC5kZWxheSgwLjIpXHJcbiAgICAgICAgLnRvKDAuMSx7b3BhY2l0eTowfSlcclxuICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgdGhpcy5oaXQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+a4uOaIj1xyXG4gICAgc3RhcnRHYW1lKCl7XHJcbiAgICAgICAgaWYodGhpcy5vdmVyID09IGZhbHNlICYmIHRoaXMuY291bnRUaW1lID4gMCl7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVN1bigpO1xyXG4gICAgICAgICAgICB0aGlzLmJlZ2luID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbClcclxuICAgICAgICAgICAgLnRvKDAuNSx7b3BhY2l0eToyNTUsc2NhbGU6MS4zfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMucnVuR2FtZSgpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJ1bkdhbWUoKXtcclxuICAgICAgICBsZXQgdGltZSA9IC02NTA7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ub3dfQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICB0aW1lID0gdGhpcy5ub3dfQXJyYXlbaV0udGltZSoxMDAwICsgdGltZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gdGhpcy5ub3dfQXJyYXlbaV0udGltZUNvdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRlbXAgPiAwLjUpIHRlbXAgPSAwLjU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoaSAhPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5iYWxsICYmIHRoaXMubm93X0FycmF5W2ldKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTGluZShjYy52Mih0aGlzLmJhbGwueCx0aGlzLmJhbGwueSksY2MudjIodGhpcy5ub3dfQXJyYXlbaV0ueCx0aGlzLm5vd19BcnJheVtpXS55KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm93X0FycmF5W2ldLnRpbWUtdGVtcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5iYWxsKVxyXG4gICAgICAgICAgICAgICAgICAgIC50byh0aGlzLm5vd19BcnJheVtpXS50aW1lLXRlbXAse3g6dGhpcy5ub3dfQXJyYXlbaV0ueCx5OnRoaXMubm93X0FycmF5W2ldLnl9KVxyXG4gICAgICAgICAgICAgICAgICAgIC50bygwLjEse3NjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlQmFsbChpLHRoaXMubm93X0FycmF5W2ldLmNvbG9yLHRoaXMubm93X0FycmF5W2ldLnNwZWVkLHRoaXMubm93X0FycmF5W2ldLnJlcGVhdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGkgPT0gdGhpcy5ub3dfQXJyYXkubGVuZ3RoIC0xKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbC5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveUxpbmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJlZ2luR2FtZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV0ubW92ZU51bWJlcjwxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBY3Rpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDE1MCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9LCB0aW1lKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVNb3ZlKCl7XHJcbiAgICAgICAgaWYodGhpcy5vdmVyID09IGZhbHNlKXtcclxuICAgICAgICAgICAgbGV0IGluZm8gPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdO1xyXG4gICAgICAgICAgICAvL+aUueWPmOenu+WKqOmAn+W6plxyXG4gICAgICAgICAgICB2YXIgc3BlZWQgPSA3O1xyXG4gICAgICAgICAgICBpZihpbmZvLm1vdmVTcGVlZCA+PSAyKXtcclxuICAgICAgICAgICAgICAgIHNwZWVkID0gNyAtIGluZm8ubW92ZVNwZWVkLzI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoaW5mby5yZXBlYXQgPT0gMSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlcGVhdCAgPSBwYXJzZUludCgoTWF0aC5yYW5kb20oKSooaW5mby5udW1iZXItMSkrMSkgKyBcIlwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wTnVtYmVyID0gMDtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMucmVwZWF0ID0gNDtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMucmVwZWF0ICA+IDQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyUmVwZWF0ID0gcGFyc2VJbnQoTWF0aC5yYW5kb20oKSo0ICsgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5yZXBlYXQgID09IChpbmZvLm51bWJlci0xKSkgIC8v5aaC5p6c5piv5pyA5ZCO5LiA5LiqIOS4jeiDvei3n+esrOS4gOS4qumHjeWPoFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyUmVwZWF0ID0gdGhpcy5yZXBlYXQgIC0gcGFyc2VJbnQoIChNYXRoLnJhbmRvbSgpKjMgKyAyKSsgXCJcIilcclxuICAgICAgICAgICAgICAgICAgICB0ZW1wTnVtYmVyID0gIHRoaXMuUG9zX0FycmF5W3RoaXMubnVtYmVyUmVwZWF0XTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlBvc19BcnJheVt0aGlzLnJlcGVhdCBdID0gdGVtcE51bWJlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7IC8vIDAgMSAyIDMgNCA1IFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIDYgLSAzIC0gMSAgPSAyIDQgIDAxIDRcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnJlcGVhdCAgPT0gMCkgdGhpcy5yZXBlYXQgID0gMTtcclxuICAgICAgICAgICAgICAgICAgICBpZigoaW5mby5udW1iZXItMS10aGlzLnJlcGVhdCApID09IDIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IGluZm8ubnVtYmVyIC0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE51bWJlciA9ICB0aGlzLlBvc19BcnJheVt0aGlzLm51bWJlclJlcGVhdF07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoKGluZm8ubnVtYmVyLTEtdGhpcy5yZXBlYXQgKSA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSB0aGlzLnJlcGVhdCAtIDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBOdW1iZXIgPSAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5udW1iZXJSZXBlYXRdO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigoaW5mby5udW1iZXItMS10aGlzLnJlcGVhdCApID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IHRoaXMucmVwZWF0IC0gMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE51bWJlciA9ICB0aGlzLlBvc19BcnJheVt0aGlzLm51bWJlclJlcGVhdF07XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKChpbmZvLm51bWJlci0xLXRoaXMucmVwZWF0ICkgPiAyKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSBwYXJzZUludChNYXRoLnJhbmRvbSgpKihpbmZvLm51bWJlci10aGlzLnJlcGVhdCAtMikgKyBcIlwiKSArIHRoaXMucmVwZWF0ICArIDIgO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTnVtYmVyID0gIHRoaXMuUG9zX0FycmF5W3RoaXMubnVtYmVyUmVwZWF0XTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSB0aGlzLnJlcGVhdCAtIDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBOdW1iZXIgPSAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5udW1iZXJSZXBlYXRdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlBvc19BcnJheVt0aGlzLnJlcGVhdF0gPSB0ZW1wTnVtYmVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGluZm8ubW92ZU51bWJlciA+IDApe1xyXG4gICAgICAgICAgICAgICAgLy8wIDEgMiAzIDQgNSA2IDcgOCA5XHJcbiAgICAgICAgICAgICAgICAvL+WPr+enu+WKqOWMuuWIhlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgej0wOyB6PGluZm8ubnVtYmVyOyB6Kyspe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUFycmF5W3pdID0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZvcihsZXQgcD0wOyBwPGluZm8ubW92ZU51bWJlcjsgcCsrKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVtpbmZvLm51bWJlci0xLXBdID0gMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCB0aW1lT3V0ID0gMDtcclxuICAgICAgICAgICAgICAgIC8v5omT5Lmx5Y+v56e75Yqo6aG65bqPXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheS5zb3J0KCgpID0+IE1hdGgucmFuZG9tKCkgLSAwLjUpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlQXJyYXlbMF0gPT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCByPWluZm8ubnVtYmVyLTE7IHI+PTA7IHItLSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZUFycmF5W3JdID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQXJyYXlbcl0gPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQXJyYXlbMF0gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v6K6+572u6YeN5Y+gXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJlcGVhdCA9IC0xO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5udW1iZXJSZXBlYXQgPSAtMTtcclxuXHJcbiAgICAgICAgICAgICAgICAvL+WwhumHjeWPoOeahOiuvue9ruS4uuS4jeWPr+enu+WKqCAgMSAxIDEgMSAwIDAgMSAwIDAgMCAgIC8gMiA3XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGsgPTA7IGs8dGhpcy5tb3ZlQXJyYXkubGVuZ3RoO2srKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlQXJyYXlba109PTEgJiYgKGsgPT0gdGhpcy5yZXBlYXQgfHwgayA9PSB0aGlzLm51bWJlclJlcGVhdCkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IG0gPSB0aGlzLm1vdmVBcnJheS5sZW5ndGgtMTsgbSA+PSAwOyBtLS0pe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobSAhPSBrICYmIHRoaXMubW92ZUFycmF5W21dID09IDAgJiYgbSE9IHRoaXMucmVwZWF0ICYmIG0hPSB0aGlzLm51bWJlclJlcGVhdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQXJyYXlbbV0gPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUFycmF5W2tdID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICA9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0wOyBpPHRoaXMuUG9zX0FycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZUFycmF5IFtpXSA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZU91dCArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHRoaXMuZ2V0UG9zMih0cnVlLGkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qb3NfQXJyYXlbaV0gPSBwb3M7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRpbWVPdXQqMzAwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC8v56e75Yqo5ZCO5pWw5o2uIOmHjeaWsOWIt+S4gOmBjei1i+WAvFxyXG4gICAgdXBkYXRlQXJyYXkoKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLm5vd19BcnJheS5sZW5ndGgtMTtpKyspe1xyXG4gICAgICAgICAgICB0aGlzLm5vd19BcnJheVtpXS54ID0gdGhpcy5Qb3NfQXJyYXlbaV0ueDtcclxuICAgICAgICAgICAgdGhpcy5ub3dfQXJyYXlbaV0ueSA9IHRoaXMuUG9zX0FycmF5W2ldLnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/lpKrpmLPliJ3lp4vljJblkI7np7vliqjmlrnms5VcclxuICAgICBtb3ZlQWN0aW9uKCl7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBcnJheSgpO1xyXG4gICAgICAgIGxldCBtb3ZlQXJyYXkgPSB0aGlzLm1vdmVBcnJheTtcclxuICAgICAgICBsZXQgaW5mbyA9IEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV07XHJcbiAgICAgICAgLy/mlLnlj5jnp7vliqjpgJ/luqZcclxuICAgICAgICB2YXIgc3BlZWQgPSA3O1xyXG4gICAgICAgIGlmKGluZm8ubW92ZVNwZWVkID49IDIpe1xyXG4gICAgICAgICAgICBzcGVlZCA9IDcgLSBpbmZvLm1vdmVTcGVlZC8yO1xyXG4gICAgICAgIH0gIFxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBpZihpbmZvLm1vdmVOdW1iZXIgPiAwKXtcclxuICAgICAgICAgICAgLy8wIDEgMiAzIDQgNSA2IDcgOCA5XHJcbiAgICAgICAgICAgIC8v5Y+v56e75Yqo5Yy65YiGXHJcbiAgICAgICAgICAgIGxldCBwb3MgPSBjYy52MigwLDApO1xyXG5cclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMucmVwZWF0ID0gLTE7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubnVtYmVyUmVwZWF0ID0gLTE7XHJcblxyXG4gICAgICAgICAgICAgICAgLy/lsIbph43lj6DnmoTorr7nva7kuLrkuI3lj6/np7vliqggIDEgMSAxIDEgMCAwIDEgMCAwIDAgICAvIDIgN1xyXG4gICAgICAgICAgICBmb3IobGV0IGsgPTA7IGs8dGhpcy5tb3ZlQXJyYXkubGVuZ3RoO2srKyl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVBcnJheVtrXT09MSAmJiAoayA9PSB0aGlzLnJlcGVhdCB8fCBrID09IHRoaXMubnVtYmVyUmVwZWF0KSl7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBtID0gdGhpcy5tb3ZlQXJyYXkubGVuZ3RoLTE7IG0gPj0gMDsgbS0tKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYobSAhPSBrICYmIHRoaXMubW92ZUFycmF5W21dID09IDAgJiYgbSE9IHRoaXMucmVwZWF0ICYmIG0hPSB0aGlzLm51bWJlclJlcGVhdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVttXSA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVtrXSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICA9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgbGFzdE51bWJlciA9IDA7XHJcbiAgICAgICAgICAgIC8v6ZSB5a6a5pyA5ZCO5LiA5Liq5Y+v56e75Yqo55qEXHJcbiAgICAgICAgICAgIGZvcihsZXQgaiA9MDsgajxtb3ZlQXJyYXkubGVuZ3RoO2orKyl7XHJcbiAgICAgICAgICAgICAgICBpZihtb3ZlQXJyYXlbal09PTEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGxhc3ROdW1iZXIgPSBqO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBmb3IobGV0IGkgPTA7IGk8dGhpcy5iYWxsX0FycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYobW92ZUFycmF5W2ldID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGkgIT0gbGFzdE51bWJlcil7ICAgIC8v5aaC5p6c5LiN5piv5pyA5ZCO5LiA5Liq56e75Yqo55qEXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gc3BlZWQqdGhpcy5jYWxjdWxhdGVEaXN0YW5jZTModGhpcy5iYWxsX0FycmF5W2ldLngsdGhpcy5iYWxsX0FycmF5W2ldLnksdGhpcy5Qb3NfQXJyYXlbaV0ueCx0aGlzLlBvc19BcnJheVtpXS55KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2ldLmdldENvbXBvbmVudChcIlN1blwiKS5tb3ZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5iYWxsX0FycmF5W2ldKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAudG8odGltZSx7cG9zaXRpb246dGhpcy5Qb3NfQXJyYXlbaV19KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJTdW5cIikubW92ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy/lpoLmnpzmmK/mnIDlkI7kuIDkuKpcclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IHNwZWVkKnRoaXMuY2FsY3VsYXRlRGlzdGFuY2UzKHRoaXMuYmFsbF9BcnJheVtpXS54LHRoaXMuYmFsbF9BcnJheVtpXS55LHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJTdW5cIikubW92ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbF9BcnJheVtpXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvKHRpbWUse3Bvc2l0aW9uOnRoaXMuUG9zX0FycmF5W2ldfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2ldLmdldENvbXBvbmVudChcIlN1blwiKS5tb3ZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYmVnaW5HYW1lKCl7XHJcbiAgICAgICAgdGhpcy5iZWdpbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSB0aGlzLmdldFRpbWUoKTtcclxuICAgICAgICB0aGlzLnRpbWVTdGFydCA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJzaG93QnRuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmFuZG9tQXJyYXkobGFzdE51bWJlcil7XHJcbiAgICAgICAgbGV0IG51bSA9ICBwYXJzZUludChNYXRoLnJhbmRvbSgpKjggLSA0ICsgXCJcIik7XHJcbiAgICAgICAgbGV0IGpnID0gbnVtICsgbGFzdE51bWJlcjtcclxuICAgICAgICBpZihudW0gPiAxIHx8IG51bSA8LTEpe1xyXG4gICAgICAgICAgICBpZiggbnVtID09IDAgfHwgKCBqZzwwIHx8IGpnID49IHRoaXMuUG9zX0FycmF5Lmxlbmd0aCkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSB0aGlzLmdldFJhbmRvbUFycmF5KGxhc3ROdW1iZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGpnID0gdGhpcy5nZXRSYW5kb21BcnJheShsYXN0TnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICBcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rlpKrpmLPmiYDpnIDmlbDmja5cclxuICAgIGNyZWF0ZVN1bigpe1xyXG4gICAgICAgIGxldCBsZXZlbERhdGEgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdO1xyXG4gICAgICAgIGxldCB0aWVtT3V0ID0gMDtcclxuICAgICAgICBmb3IobGV0IGw9MDsgbDxsZXZlbERhdGEubnVtYmVyO2wrKyl7XHJcbiAgICAgICAgICAgIHRpZW1PdXQgKz0gMTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3MgPSB0aGlzLmdldFBvcyhmYWxzZSxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlBvc19BcnJheS5wdXNoKHBvcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5Qb3NfQXJyYXkubGVuZ3RoID09IGxldmVsRGF0YS5udW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQb3MoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9LCB0aWVtT3V0KjEwMCk7XHJcbiBcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gMCAwIDAgMCAwIDAgICAgIDAgICAgMCAwIDAgMFxyXG5cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVQb3MoKXtcclxuICAgICAgICBsZXQgZGF0YSA9IHt4OnRoaXMuYmFsbC54LHk6dGhpcy5iYWxsLnksdGltZTowLHRpbWVDb3VudDowLGNvbG9yOjAsc3BlZWQ6MCxyZXBlYXQ6ZmFsc2V9O1xyXG4gICAgICAgIGxldCBsZXZlbERhdGEgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdO1xyXG4gICAgICAgIC8v6aKc6Imy5Yy65YiGXHJcbiAgICAgICAgbGV0IGNvbG9yQXJyYXkgPSBbMCwxXTtcclxuICAgICAgICBmb3IobGV0IGo9MDsgajxsZXZlbERhdGEubnVtYmVyLTI7aisrKXtcclxuICAgICAgICAgICAgbGV0IGNvbG9yVGVtcCA9IHBhcnNlSW50KE1hdGgucmFuZG9tKCkqMytcIlwiKTtcclxuICAgICAgICAgICAgaWYobGV2ZWxEYXRhLm51bWJlciA8IDYgJiYgY29sb3JUZW1wID09IDIpIGNvbG9yVGVtcCA9IDA7XHJcbiAgICAgICAgICAgIGNvbG9yQXJyYXkucHVzaChjb2xvclRlbXApO1xyXG4gICAgICAgICAgICBjb2xvckFycmF5LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbG9yQXJyYXkuc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KTtcclxuICAgICAgICBpZihsZXZlbERhdGEubnVtYmVyID09IDQpIGNvbG9yQXJyYXkgPSBbMCwwLDAsMF07XHJcbiAgICAgICAgdGhpcy5jb2xvcl9BcnJheSA9IGNvbG9yQXJyYXk7XHJcblxyXG5cclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxsZXZlbERhdGEubnVtYmVyO2krKyl7XHJcbiAgICAgICAgICAgIGxldCB0aW1lQ291bnQgPSB0aGlzLnRpbWVDb3VudCArICgwLjYtdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLmJhbGwueCx0aGlzLmJhbGwueSx0aGlzLlBvc19BcnJheVtpXS54LHRoaXMuUG9zX0FycmF5W2ldLnkpKTtcclxuICAgICAgICAgICAgbGV0IHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55LHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSkrdGltZUNvdW50O1xyXG4gICAgICAgICAgICBkYXRhID0ge3g6dGhpcy5Qb3NfQXJyYXlbaV0ueCx5OnRoaXMuUG9zX0FycmF5W2ldLnksdGltZTp0aW1lLHRpbWVDb3VudDp0aW1lQ291bnQsY29sb3I6Y29sb3JBcnJheVtpXSxzcGVlZDpsZXZlbERhdGEubW92ZVNwZWVkLHJlcGVhdDpmYWxzZX07XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmVwZWF0ID09IGkpe1xyXG4gICAgICAgICAgICAgICAgZGF0YS5yZXBlYXQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYodGhpcy5udW1iZXJSZXBlYXQgPT0gaSl7XHJcbiAgICAgICAgICAgICAgICBkYXRhLnJlcGVhdCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ub3dfQXJyYXkucHVzaChkYXRhKTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJ1bkdhbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQb3ModHlwZSxudW0pe1xyXG4gICAgICAgIGxldCBwb3NYID0gTWF0aC5yYW5kb20oKSo2MjAgLSAzMTA7XHJcbiAgICAgICAgbGV0IHBvc1kgPSBNYXRoLnJhbmRvbSgpKih0aGlzLmZpdFRvcC10aGlzLmZpdEJvdCkgKyB0aGlzLmZpdEJvdDtcclxuXHJcbiAgICAgICAgbGV0IHBvaW50ID0gY2MudjIocG9zWCxwb3NZKTtcclxuICAgICAgIFxyXG4gICAgICAgIGlmKHRoaXMuUG9zX0FycmF5Lmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLlBvc19BcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCBkaXN0YW5jZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZihpID09IG51bSkgcGQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKHBvc1gscG9zWSx0aGlzLlBvc19BcnJheVtpXS54LHRoaXMuUG9zX0FycmF5W2ldLnkscGQpXHJcbiAgICAgICAgICAgICAgICBpZihkaXN0YW5jZSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgaSA9IDEwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ID0gdGhpcy5nZXRQb3ModHlwZSxudW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPT0gdHJ1ZSAmJiBpID09ICh0aGlzLlBvc19BcnJheS5sZW5ndGgtMSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb2ludDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQb3MyKHR5cGUsbnVtKXtcclxuXHJcbiAgICAgICAgbGV0IHBvc1ggPSBNYXRoLnJhbmRvbSgpKjYyMCAtIDMxMDtcclxuICAgICAgICBsZXQgcG9zWSA9IE1hdGgucmFuZG9tKCkqKHRoaXMuZml0VG9wLXRoaXMuZml0Qm90KSArIHRoaXMuZml0Qm90O1xyXG5cclxuICAgICAgICBsZXQgcG9pbnQgPSBjYy52Mihwb3NYLHBvc1kpO1xyXG4gICAgICAgXHJcbiBcclxuICAgICAgICBpZih0aGlzLlBvc19BcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5Qb3NfQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlzdGFuY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBwZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYoaSA9PSBudW0pIHBkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGRpc3RhbmNlID0gdGhpcy5nZXREaXN0YW5jZTIocG9zWCxwb3NZLHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSxwZClcclxuICAgICAgICAgICAgICAgIGlmKGRpc3RhbmNlID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICBpID0gMTAwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnQgPSB0aGlzLmdldFBvczIodHlwZSxudW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPT0gdHJ1ZSAmJiBpID09ICh0aGlzLlBvc19BcnJheS5sZW5ndGgtMSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb2ludDtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXN0YW5jZSh4MSwgeTEsIHgyLCB5MixudW0pIHtcclxuICAgICAgICB2YXIgamcgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBkeCA9IHgyIC0geDE7XHJcbiAgICAgICAgY29uc3QgZHkgPSB5MiAtIHkxO1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBpZihkaXN0YW5jZSA+IDE2MCl7XHJcbiAgICAgICAgICAgIGlmKG51bSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgIGlmKGRpc3RhbmNlIDwgR2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk9bdGhpcy5sZXZlbC0xXS5tYXhNb3ZlKXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgZWxzZSBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBpZihkaXN0YW5jZSA8IEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV0ubWF4TW92ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgIGVsc2UgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGlzdGFuY2UyKHgxLCB5MSwgeDIsIHkyLG51bSkge1xyXG4gICAgICAgIHZhciBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gMTYwKXtcclxuICAgICAgICAgICAgaWYobnVtID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPCBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1heERpc3RhbmNlKSBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGpnID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNyZWF0ZUJhbGwobnVtYmVyLGNvbG9yLHNwZWVkLHJlcGVhdCl7XHJcbiAgICAgICAgbGV0IGJhbGwgPSBudWxsO1xyXG4gICAgICAgIGlmKGNvbG9yID09IDApYmFsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMucWl1MSk7XHJcbiAgICAgICAgZWxzZSBpZihjb2xvciA9PSAxKWJhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLnFpdTIpO1xyXG4gICAgICAgIGVsc2UgaWYoY29sb3IgPT0gMiliYWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5xaXUzKTtcclxuICAgICAgICBiYWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlN1blwiKTtcclxuICAgICAgICBiYWxsLnpJbmRleCA9IHRoaXMubm93X0FycmF5Lmxlbmd0aCAtIG51bWJlcjtcclxuICAgICAgICBiYWxsLnNldFBvc2l0aW9uKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55KTtcclxuICAgICAgICBiYWxsLmdldENvbXBvbmVudChcIlN1blwiKS5pbml0KG51bWJlcixjb2xvcixzcGVlZCxyZXBlYXQpO1xyXG4gICAgICAgIHRoaXMuYmFsbF9BcnJheS5wdXNoKGJhbGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlc3Ryb3lMaW5lKCkge1xyXG4gICAgICAgIGZvcihsZXQgaSA9MDsgaTwgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKS5jaGlsZHJlbi5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKS5jaGlsZHJlbltpXSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpLmNoaWxkcmVuW2ldLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikuY2hpbGRyZW5baV0gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVMaW5lKHN0YXJ0LGVuZCx0aW1lKXtcclxuICAgICAgICBsZXQgbGluZSA9IGNjLmluc3RhbnRpYXRlKHRoaXMubGluZVByZWZhYik7XHJcbiAgICAgICAgbGluZS5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpO1xyXG4gICAgICAgIGxpbmUuc2V0UG9zaXRpb24oc3RhcnQueCxzdGFydC55KTtcclxuICAgIFxyXG4gICAgICAgIGNvbnN0IGR4ID0gZW5kLnggLSBzdGFydC54O1xyXG4gICAgICAgIGNvbnN0IGR5ID0gZW5kLnkgLSBzdGFydC55O1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBsaW5lLmhlaWdodCA9IGRpc3RhbmNlO1xyXG4gICAgICAgIGxpbmUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuZmlsbFJhbmdlID0gMDtcclxuICAgICAgICBsaW5lLmFuZ2xlID0gLXRoaXMuY2FsY3VsYXRlQW5nbGUoc3RhcnQueCxzdGFydC55LGVuZC54LGVuZC55KTtcclxuICAgICAgICBjYy50d2VlbihsaW5lLmdldENvbXBvbmVudChjYy5TcHJpdGUpKVxyXG4gICAgICAgIC50byh0aW1lLHtmaWxsUmFuZ2U6MX0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FsY3VsYXRlQW5nbGUoeDEsIHkxLCB4MiwgeTIpIHtcclxuICAgICAgICB2YXIgYW5nbGUgPSBNYXRoLmF0YW4yKHkyLXkxLHgyLXgxKSoxODAgLyBNYXRoLlBJIC0gOTA7XHJcbiAgICAgICAgcmV0dXJuIC1hbmdsZTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxjdWxhdGVEaXN0YW5jZSh4MSwgeTEsIHgyLCB5Mikge1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gODAwKSBkaXN0YW5jZSA9IDgwMDtcclxuICAgICAgICBjb25zdCB0aW1lID0gZGlzdGFuY2UvODAwICogMC42O1xyXG4gICAgICAgIHJldHVybiB0aW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZURpc3RhbmNlMih4MSwgeTEsIHgyLCB5Mikge1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gMTIwMCkgZGlzdGFuY2UgPSAxMjAwO1xyXG4gICAgICAgIGNvbnN0IHRpbWUgPSBkaXN0YW5jZS8xMjAwICogMTtcclxuICAgICAgICByZXR1cm4gdGltZTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxjdWxhdGVEaXN0YW5jZTMoeDEsIHkxLCB4MiwgeTIpIHtcclxuICAgICAgICBjb25zdCBkeCA9IHgyIC0geDE7XHJcbiAgICAgICAgY29uc3QgZHkgPSB5MiAtIHkxO1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBpZihkaXN0YW5jZSA+IDEyMDApIGRpc3RhbmNlID0gMTIwMDtcclxuICAgICAgICBjb25zdCB0aW1lID0gZGlzdGFuY2UvMTIwMCAqIDEuNTtcclxuICAgICAgICByZXR1cm4gdGltZTtcclxuICAgIH1cclxuXHJcbiAgICAvL+iDjOaZr+enu+WKqFxyXG4gICAgYmdNb3ZlKHR5cGUpe1xyXG4gICAgICAgIGxldCByYW5kb20gPSBNYXRoLnJhbmRvbSgpKjMwMCArIDMwMDtcclxuICAgICAgICBsZXQgcG9zWCA9IE1hdGgucmFuZG9tKCkqNjAwIC0gMzAwO1xyXG4gICAgXHJcbiAgICAgICAgbGV0IHkxID0gdGhpcy5iZzEueSAtIHJhbmRvbSp0eXBlO1xyXG4gICAgICAgIC8vIGxldCB5MiA9IHRoaXMuYmcyLnkgLSByYW5kb20qdHlwZTtcclxuICAgICAgICBsZXQgdGltZTEgPSAwLjcqKHJhbmRvbS80MDApO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLmJhbGwpXHJcbiAgICAgICAgLnRvKDAuMyx7c2NhbGU6MS4zfSlcclxuICAgICAgICAudG8odGltZTEse3g6cG9zWH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMuYmcxKVxyXG4gICAgICAgIC5kZWxheSgwLjMpXHJcbiAgICAgICAgLnRvKHRpbWUxLHt5OnkxfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgLy8gY2MudHdlZW4odGhpcy5iZzIpXHJcbiAgICAgICAgLy8gLmRlbGF5KDAuMylcclxuICAgICAgICAvLyAudG8odGltZTEse3k6eTJ9KVxyXG4gICAgICAgIC8vIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5vdmVyID09IGZhbHNlICYmIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbSA9PSAwKXtcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgaWYodGhpcy5vdmVyID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgXHJcbiAgICAgICAgfSwgdGltZTEqMTUwMCk7XHJcbiAgICB9XHJcbiAgICAvL+aXtumXtOagvOW8j+i9rOaNolxyXG4gICAgZ2V0VGltZU1hcmdpbihzZWNvbmQ6bnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgbGV0IG0gPSBcIlwiICsgbWluOyAgXHJcbiAgICAgICAgaWYobWluIDwgMTApIG0gPSBcIjBcIittaW47XHJcbiAgICAgICAgbGV0IGFmdGVyTWluID0gdG90YWwgLSBob3VyICogNjAgKiA2MCAtIG1pbiAqIDYwOy8v5Y+W5b6X566X5Ye65YiG5ZCO5Ymp5L2Z55qE56eS5pWwXHJcbiAgICAgICAgbGV0IG1pYW8gPSBhZnRlck1pbiArIFwiXCI7XHJcbiAgICAgICAgaWYoYWZ0ZXJNaW4gPCAxMCkgbWlhbyA9IFwiMFwiICsgYWZ0ZXJNaW47XHJcbiAgICAgICAgcmV0dXJuIG0gKyAnOicgKyBtaWFvXHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICAvL+WmguaenOaYr+WAkuiuoeaXtiDosIPnlKjmraTmlrnms5VcclxuICAgIHVwZGF0ZUNvdW50RG93blRpbWUgKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvdW50VGltZSA+IDAgJiYgdGhpcy5wYXVzZSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50VGltZSAtPSAxO1xyXG4gICAgICAgICAgICB0aGlzLnRpbWUuc3RyaW5nID0gdGhpcy5nZXRUaW1lTWFyZ2luKHRoaXMuY291bnRUaW1lKTtcclxuICAgICAgICAgICAgaWYodGhpcy5jb3VudFRpbWUgPCA1KXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMudGltZS5ub2RlKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMjUse3NjYWxlOjEuNSxjb2xvcjpjYy5jb2xvcigyNTUsMCwwKX0pXHJcbiAgICAgICAgICAgICAgICAudG8oMC4yNSx7c2NhbGU6MSxjb2xvcjpjYy5jb2xvcigyNTUsMjU1LDI1NSl9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KClcclxuICAgICAgICAgICAgICAgIGxldCBvdmVyID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiT3ZlclwiKTtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKG92ZXIpXHJcbiAgICAgICAgICAgICAgICAudG8oMC4yLHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMix7b3BhY2l0eTowfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY291bnRUaW1lIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iZWdpbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnVwZGF0ZUNvdW50RG93blRpbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb3NzKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZSA9IDA7XHJcbiAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSx0aGlzLmNsaWNrQ291bnQpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jbGlja0NvdW50ID4gMCkgdGltZSA9IHBhcnNlSW50KEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZS90aGlzLmNsaWNrQ291bnQgKyBcIlwiKTtcclxuICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSA9IHBhcnNlSW50KHRpbWUvMTAwICsgXCJcIik7XHJcbiAgICAgICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUgPSBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUgLzEwO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSx0aW1lKTtcclxuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICAgICAgaWYodGltZSA+IDEwMDAwKSB0aW1lID0gKE1hdGgucmFuZG9tKCkqMTArNSkqMTAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRSYW5rKHRpbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldERhdGEoKXtcclxuICAgICAgICBsZXQgZGF0YSA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HQU1FX0RBVEE7XHJcbiAgICAgICAgbGV0IG1hdGNoSWQgPSB0aGlzLmdldE1hdGNoSWQoKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhtYXRjaElkKTtcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwibWF0Y2hJZFwiOm1hdGNoSWQsXHJcbiAgICAgICAgICAgIFwiZGF0YVwiOiBkYXRhXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOaVsOaNrjpcIilcclxuICAgICAgICBIdHRwVXRpbC51cGxvYWRVc2VyTG9nRGF0YShwb3N0RGF0YSxmdW5jdGlvbigpe30pXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcblxyXG4gICAgICAgIGlmKG1hdGNoSWQgPT0gXCJ1bmRpZmVuZFwiIHx8IG1hdGNoSWQ9PW51bGwpe1xyXG4gICAgICAgICAgICBtYXRjaElkID0gIHRoaXMuc2V0TWF0Y2hJZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBpZih0aGlzLmNvbnRhaW5zTmFuYW5hKG1hdGNoSWQpID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgbWF0Y2hJZCA9ICB0aGlzLnNldE1hdGNoSWQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgbGV0IGNoYXIgPSBwYXJzZUludChtYXRjaElkWzEwXSk7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLnJvdW5kID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYXIgKz0gMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG1hdGNoSWQgID0gbWF0Y2hJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1hdGNoSWQgPSBtYXRjaElkO1xyXG4gICAgICAgICAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLG1hdGNoSWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbWF0Y2hJZDtcclxuICAgIH1cclxuXHJcbiAgICBjb250YWluc05hbmFuYShzdHIpIHtcclxuICAgICAgICByZXR1cm4gL25hL2kudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldE1hdGNoSWQgKCl7XHJcbiAgICAgICAgLy8g5a6a5LmJ5YyF5ZCr5Y+v55So5a2X56ym55qE5a2X56ym6ZuGXHJcbiAgICAgICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq5pWw57uE5Lul5L+d5a2Y6ZqP5py65a2X56ymXHJcbiAgICAgICAgY29uc3QgdXVpZEFycmF5ID0gW107XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8g5b6q546vMTDmrKEg55Sf5oiQMTDkvY3nmoRVVUlEXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDnlJ/miJDpmo/mnLrntKLlvJXvvIzojIPlm7TmmK/lrZfnrKbpm4bnmoTplb/luqZcclxuICAgICAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIC8vIOS7juWtl+espumbhuS4reiOt+WPlumaj+acuuWtl+esplxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21DaGFyID0gY2hhcmFjdGVycy5jaGFyQXQocmFuZG9tSW5kZXgpO1xyXG4gICAgICAgICAgICAvLyDlsIblrZfnrKbmt7vliqDliLDmlbDnu4TkuK1cclxuICAgICAgICAgICAgdXVpZEFycmF5LnB1c2gocmFuZG9tQ2hhcik7XHJcbiAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAgIGxldCBkYXRhID0gIHV1aWRBcnJheS5qb2luKCcnKSArIDEgKyBcIlwiO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoTnVtYmVyXCIsMSk7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLGRhdGEpO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1hdGNoSWQgPSBkYXRhO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFJhbmsodGltZSl7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcInR5cGVcIjoxLFxyXG4gICAgICAgICAgICBcInJlYWN0aW9uVGltZVwiOiB0aW1lLFxyXG4gICAgICAgICAgICBcInRvdGFsU3VuQ291bnRcIjogR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwsXHJcbiAgICAgICAgICAgIFwic3VjY2Vzc1wiOiBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5zdWNjZXNzXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocG9zdERhdGEpO1xyXG4gICAgICAgIEh0dHBVdGlsLnJhbmtEYXRhKDEsZnVuY3Rpb24oKXt9LHBvc3REYXRhKTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lT3ZlclwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVPdmVyXCIpLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVPdmVyXCIpKVxyXG4gICAgICAgIC50bygwLjQse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAuZGVsYXkoMilcclxuICAgICAgICAudG8oMC40LHtvcGFjaXR5OjUwfSlcclxuICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiT3ZlclNjZW5lXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KClcclxuICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgb3V0UHV0KCl7XHJcblxyXG4gICAgICAgIGxldCBkYXRhID0gR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEE7XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdBTUVfREFUQSA9IFtdO1xyXG5cclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR0FNRV9EQVRBLnB1c2goR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEpO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5DTElDS19pbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd051bWJlcigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2hvdyA9PSBmYWxzZSkgdGhpcy5zaG93ID0gdHJ1ZTtcclxuICAgICAgICBlbHNlIGlmKHRoaXMuc2hvdyA9PSB0cnVlKSB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiU3VuXCIpLnNob3dOdW1iZXIodGhpcy5zaG93KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG9uRW5hYmxlICgpIHtcclxuICAgICAgICBOb3RpZmljYXRpb24ub24oXCJjbGlja1N1blwiLCB0aGlzLmNsaWNrU3VuLCB0aGlzKTtcclxuICAgICAgICAvLyBOb3RpZmljYXRpb24ub24oXCJIYW1tZXJQbGF5XCIsIHRoaXMuSGFtbWVyUGxheSwgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EaXNhYmxlICgpIHtcclxuICAgICAgICAvLyBOb3RpZmljYXRpb24ub2ZmKFwicmlnaHRBbnN3ZXJzXCIsIHRoaXMucmlnaHRBbnN3ZXJzKTtcclxuICAgICAgICBOb3RpZmljYXRpb24ub2ZmKFwiY2xpY2tTdW5cIiwgdGhpcy5jbGlja1N1bik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICBcclxuICAgIH1cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Load.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '454adgphRpA6oq5lB6Cg1fK', 'Load'); +// Script/Load.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; +var GameData_1 = require("./GameData"); +var Storage_1 = require("./Storage"); +// import {StorageMessage} from "./StorageMessage"; +// import { apiSign } from "./crypto/sign"; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.label = null; + _this.text = 'hello'; + return _this; + // update (dt) {} + } + NewClass.prototype.start = function () { + var userId = Storage_1.StorageMessage.getStorage("user"); + if (userId == "undifend" || userId == null) { + this.setId(); + } + else { + var data = Storage_1.StorageMessage.getStorage("user"); + data = this.getId(data); + var timestamp = parseInt(new Date().getTime() / 1000 + ""); + if ((timestamp - data[2]) > 86400) { + this.setId(); + return; + } + GameData_1.default._instance.GM_INFO.userId = data[1]; + GameData_1.default._instance.GM_INFO.userId = parseInt(GameData_1.default._instance.GM_INFO.userId); + } + }; + NewClass.prototype.setId = function () { + GameData_1.default._instance.GM_INFO.userId = this.getUserId(); + if (GameData_1.default._instance.GM_INFO.userId == null) { + var url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=" + location.href; + window.location.href = url; + } + else { + var timestamp = parseInt(new Date().getTime() / 1000 + ""); + var idTemp = "gameId=" + GameData_1.default._instance.GM_INFO.gameId + + "?userId= " + GameData_1.default._instance.GM_INFO.userId + "?time=" + timestamp; + Storage_1.StorageMessage.setStorage("user", idTemp); + GameData_1.default._instance.GM_INFO.userId = parseInt(GameData_1.default._instance.GM_INFO.userId); + } + }; + NewClass.prototype.createTexture = function () { + var _this = this; + var url = "http://static.sparkus.cn/shoot-sun/assets/resources/native/7a/7a8b41ad-9425-44e2-8f55-7740f12b0e0a.jpg"; + cc.assetManager.loadRemote(url, function (err, texture) { + console.log(err, texture); + if (texture) { + var sprite = _this.node.getChildByName("icon").getComponent(cc.Sprite); + sprite.spriteFrame = new cc.SpriteFrame(texture); + } + }); + }; + NewClass.prototype.getUserId = function () { + var pathStr = window.location.search; + var arr = pathStr.split("&"); + if (pathStr.length >= 0 && arr.length > 0) { + var arr2_1 = []; + arr.map(function (item) { + arr2_1.push(item.split("=")[1]); + }); + // GameData._instance.GM_INFO.userId = arr2[0] + ""; + return arr2_1[0]; + } + else { + return null; + } + }; + NewClass.prototype.getId = function (str) { + var pathStr = str; + var arr = pathStr.split("?"); + if (pathStr.length >= 0 && arr.length > 0) { + var arr2_2 = []; + arr.map(function (item) { + arr2_2.push(item.split("=")[1]); + }); + // GameData._instance.GM_INFO.userId = arr2[1] + ""; + return arr2_2; + } + else { + return null; + } + }; + NewClass.prototype.startGame = function () { + GameData_1.default._instance.GM_INFO.custom = 0; + cc.director.loadScene("GuideScene"); + }; + NewClass.prototype.clickBtn = function (event, data) { + GameData_1.default._instance.GM_INFO.custom = parseInt(data); + cc.director.loadScene("GameScene"); + }; + NewClass.prototype.openLevel = function () { + this.node.getChildByName("Level").active = true; + }; + NewClass.prototype.closeBtn = function () { + this.node.getChildByName("Level").active = false; + }; + NewClass.prototype.back = function (data) { + // debugger; + }; + NewClass.prototype.openBtn = function () { + GameData_1.default._instance.GM_INFO.custom = 0; + cc.director.loadScene("GuideScene"); + }; + NewClass.prototype.openRank = function () { + cc.director.loadScene("RankScene"); + }; + __decorate([ + property(cc.Label) + ], NewClass.prototype, "label", void 0); + __decorate([ + property + ], NewClass.prototype, "text", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxMb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGO0FBQzVFLElBQUEsS0FBd0MsRUFBRSxDQUFDLFVBQVUsRUFBcEQsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsZ0JBQWdCLHNCQUFpQixDQUFDO0FBQzVELHVDQUFrQztBQUNsQyxxQ0FBMkM7QUFHM0MsbURBQW1EO0FBQ25ELDJDQUEyQztBQUczQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXNIQztRQW5IRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7O1FBK0d2QixpQkFBaUI7SUFDckIsQ0FBQztJQTdHRyx3QkFBSyxHQUFMO1FBQ0ksSUFBSSxNQUFNLEdBQUcsd0JBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsSUFBRyxNQUFNLElBQUksVUFBVSxJQUFJLE1BQU0sSUFBRSxJQUFJLEVBQUM7WUFDcEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hCO2FBQ0c7WUFDQSxJQUFJLElBQUksR0FBRyx3QkFBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDekQsSUFBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUM7Z0JBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FB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QUFDO0lBRUQsMEJBQU8sR0FBUDtRQUNJLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCwyQkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdkMsQ0FBQztJQWhIRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTswQ0FDYztJQU5OLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0FzSDVCO0lBQUQsZUFBQztDQXRIRCxBQXNIQyxDQXRIcUMsRUFBRSxDQUFDLFNBQVMsR0FzSGpEO2tCQXRIb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5LCByZXF1aXJlQ29tcG9uZW50fSA9IGNjLl9kZWNvcmF0b3I7XHJcbmltcG9ydCBHYW1lRGF0YSBmcm9tIFwiLi9HYW1lRGF0YVwiO1xyXG5pbXBvcnQgeyBTdG9yYWdlTWVzc2FnZSB9IGZyb20gXCIuL1N0b3JhZ2VcIjtcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuaW1wb3J0IFJxIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuLy8gaW1wb3J0IHtTdG9yYWdlTWVzc2FnZX0gZnJvbSBcIi4vU3RvcmFnZU1lc3NhZ2VcIjtcclxuLy8gaW1wb3J0IHsgYXBpU2lnbiB9IGZyb20gXCIuL2NyeXB0by9zaWduXCI7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICBsZXQgdXNlcklkID0gU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInVzZXJcIik7XHJcbiAgICAgICAgaWYodXNlcklkID09IFwidW5kaWZlbmRcIiB8fCB1c2VySWQ9PW51bGwpe1xyXG4gICAgICAgICAgICB0aGlzLnNldElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInVzZXJcIik7XHJcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLmdldElkKGRhdGEpO1xyXG4gICAgICAgICAgICBsZXQgdGltZXN0YW1wID0gcGFyc2VJbnQobmV3IERhdGUoKS5nZXRUaW1lKCkvMTAwMCArIFwiXCIpO1xyXG4gICAgICAgICAgICBpZigodGltZXN0YW1wIC0gZGF0YVsyXSkgPiA4NjQwMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldElkKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkID0gZGF0YVsxXTtcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkID0gcGFyc2VJbnQoR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0SWQoKXtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPSB0aGlzLmdldFVzZXJJZCgpO1xyXG4gICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnVzZXJJZCA9PSBudWxsKXtcclxuICAgICAgICAgICAgbGV0IHVybCA9IFwiaHR0cDovL2FwaS5zcGFya3VzLmNuL2FwaS91c2VyL2F1dGgvbG9naW4/ZG9tYWluPWh1aTMyNTc5V2RZUHNnWXEmY2FsbGJhY2s9XCIrbG9jYXRpb24uaHJlZjtcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGxldCB0aW1lc3RhbXAgPSBwYXJzZUludChuZXcgRGF0ZSgpLmdldFRpbWUoKS8xMDAwICsgXCJcIik7XHJcbiAgICAgICAgICAgIGxldCBpZFRlbXAgPSBcImdhbWVJZD1cIiArIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmdhbWVJZCArIFxyXG4gICAgICAgICAgICBcIj91c2VySWQ9IFwiICsgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkICsgXCI/dGltZT1cIiArIHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInVzZXJcIixpZFRlbXApO1xyXG4gICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPSBwYXJzZUludChHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVUZXh0dXJlKCl7XHJcbiAgICAgICAgbGV0IHVybCA9IFwiaHR0cDovL3N0YXRpYy5zcGFya3VzLmNuL3Nob290LXN1bi9hc3NldHMvcmVzb3VyY2VzL25hdGl2ZS83YS83YThiNDFhZC05NDI1LTQ0ZTItOGY1NS03NzQwZjEyYjBlMGEuanBnXCI7XHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUodXJsLCAoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsdGV4dHVyZSlcclxuICAgICAgICAgICAgaWYodGV4dHVyZSl7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3ByaXRlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIHNwcml0ZS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRVc2VySWQoKSB7XHJcbiAgICAgICAgbGV0IHBhdGhTdHIgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xyXG5cclxuICAgICAgICBsZXQgYXJyPXBhdGhTdHIuc3BsaXQoXCImXCIpO1xyXG4gICAgICAgIGlmIChwYXRoU3RyLmxlbmd0aD49IDAmJmFyci5sZW5ndGg+MCkge1xyXG4gICAgICAgICAgICBsZXQgYXJyMj1bXTtcclxuICAgICAgICAgICAgYXJyLm1hcChpdGVtPT57XHJcbiAgICAgICAgICAgICAgICBhcnIyLnB1c2goaXRlbS5zcGxpdChcIj1cIilbMV0pXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC8vIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnVzZXJJZCA9IGFycjJbMF0gKyBcIlwiO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyMlswXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldElkKHN0cikge1xyXG4gICAgICAgIGxldCBwYXRoU3RyID0gc3RyO1xyXG5cclxuICAgICAgICBsZXQgYXJyPXBhdGhTdHIuc3BsaXQoXCI/XCIpO1xyXG4gICAgICAgIGlmIChwYXRoU3RyLmxlbmd0aD49IDAmJmFyci5sZW5ndGg+MCkge1xyXG4gICAgICAgICAgICBsZXQgYXJyMj1bXTtcclxuICAgICAgICAgICAgYXJyLm1hcChpdGVtPT57XHJcbiAgICAgICAgICAgICAgICBhcnIyLnB1c2goaXRlbS5zcGxpdChcIj1cIilbMV0pXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC8vIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnVzZXJJZCA9IGFycjJbMV0gKyBcIlwiO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyMjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b20gPSAwO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkd1aWRlU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNsaWNrQnRuKGV2ZW50LGRhdGEpe1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbSA9IHBhcnNlSW50KGRhdGEpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH0gICBcclxuXHJcbiAgICBvcGVuTGV2ZWwoKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMZXZlbFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlQnRuKCl7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGV2ZWxcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgYmFjayhkYXRhKXtcclxuICAgICAgICAvLyBkZWJ1Z2dlcjtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuQnRuKCl7XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8uY3VzdG9tID0gMDtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHdWlkZVNjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5SYW5rKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiUmFua1NjZW5lXCIpO1xyXG5cclxuICAgIH1cclxuICAgXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Notification.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'f2518+0IHRGOY+ueIhGtEeA', 'Notification'); +// Script/Notification.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Notification = void 0; +//全局通知 +var Notification = { + _eventMap: [], + on: function (masgId, callback, target) { + if (this._eventMap[masgId] === undefined) { + this._eventMap[masgId] = []; + } + this._eventMap[masgId].push({ callback: callback, target: target }); + }, + emit: function (masgId, parameter) { + var array = this._eventMap[masgId]; + if (array === undefined) + return; + for (var i = 0; i < array.length; i++) { + var element = array[i]; + if (element) + element.callback.call(element.target, parameter); + } + }, + off: function (masgId, callback) { + var array = this._eventMap[masgId]; + if (array === undefined) + return; + for (var i = 0; i < array.length; i++) { + var element = array[i]; + if (element && element.callback === callback) { + array[i] = undefined; + break; + } + } + }, + offMasgId: function (masgId) { + this._eventMap[masgId] = undefined; + }, + removeAllMsg: function () { + for (var k in this._eventMap) { + if (this._eventMap[k]) { + this.offMasgId(k); + } + } + } +}; +exports.Notification = Notification; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxOb3RpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTTtBQUNOLElBQUksWUFBWSxHQUFHO0lBQ2YsU0FBUyxFQUFFLEVBQUU7SUFDYixFQUFFLEVBQUUsVUFBVSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU07UUFDbEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxFQUFFLFVBQVUsTUFBTSxFQUFFLFNBQVM7UUFDN0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTztRQUVoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxPQUFPO2dCQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDakU7SUFDTCxDQUFDO0lBRUQsR0FBRyxFQUFFLFVBQVUsTUFBTSxFQUFFLFFBQVE7UUFDM0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTztRQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7Z0JBQzFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUM7Z0JBQ3JCLE1BQU07YUFDVDtTQUNKO0lBQ0wsQ0FBQztJQUVELFNBQVMsRUFBRSxVQUFVLE1BQU07UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQVksRUFBRTtRQUNWLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMxQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckI7U0FDSjtJQUNMLENBQUM7Q0FDSixDQUFDO0FBRU8sb0NBQVkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvL+WFqOWxgOmAmuefpVxudmFyIE5vdGlmaWNhdGlvbiA9IHtcbiAgICBfZXZlbnRNYXA6IFtdLFxuICAgIG9uOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaywgdGFyZ2V0KSB7XG4gICAgICAgIGlmICh0aGlzLl9ldmVudE1hcFttYXNnSWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50TWFwW21hc2dJZF0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdLnB1c2goeyBjYWxsYmFjazogY2FsbGJhY2ssIHRhcmdldDogdGFyZ2V0IH0pO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbiAobWFzZ0lkLCBwYXJhbWV0ZXIpIHtcbiAgICAgICAgbGV0IGFycmF5ID0gdGhpcy5fZXZlbnRNYXBbbWFzZ0lkXTtcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9IGFycmF5W2ldO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuY2FsbGJhY2suY2FsbChlbGVtZW50LnRhcmdldCwgcGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBvZmY6IGZ1bmN0aW9uIChtYXNnSWQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XG4gICAgICAgIGlmIChhcnJheSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNhbGxiYWNrID09PSBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9mZk1hc2dJZDogZnVuY3Rpb24gKG1hc2dJZCkge1xuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gdW5kZWZpbmVkO1xuICAgIH0sXG5cbiAgICByZW1vdmVBbGxNc2c6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChsZXQgayBpbiB0aGlzLl9ldmVudE1hcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2V2ZW50TWFwW2tdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vZmZNYXNnSWQoayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgeyBOb3RpZmljYXRpb24gfTsiXX0= //------QC-SOURCE-SPLIT------ (function() { @@ -1438,7 +5159,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/GameData.js'; + var __filename = 'preview-scripts/assets/Script/CtrlFluxayTexture.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -1446,2475 +5167,97 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'f2f0bI5PsVI+o18xF6G+KVa', 'GameData'); -// Script/GameData.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var GameData = /** @class */ (function (_super) { - __extends(GameData, _super); - function GameData() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.label = null; - _this.text = 'hello'; - return _this; - // update (dt) {} - } - GameData_1 = GameData; - // LEVEL_INFO: { number: number; }[]; - // LEVEL_INFO:[]; - // LIFE-CYCLE CALLBACKS: - GameData.prototype.onLoad = function () { - if (GameData_1._instance == null) { - GameData_1._instance = this; - cc.game.addPersistRootNode(this.node); - this.AudioManager = this.node.getComponent('BallAudioManager'); - } - else { - this.node.destroy(); - return; - } - }; - GameData.prototype.start = function () { - this.GM_INFO = { - // isEnd: false, - mean_Time: 0, - total: 0, - currSeed: 203213, - gameId: '100009', - userId: 200139, - guide: true, - url: "http://api.sparkus.cn", - success: false, - matchId: null, - custom: 0 - }; - this.LEVEL_INFO = [ - { - number: 3, - moveNumber: 0, - moveSpeed: 0, - maxDistance: 200, - maxMove: 1200, - repeat: 0 //是否重叠,现在0 不重叠 1 重叠1个 - }, - { - number: 4, - moveNumber: 0, - moveSpeed: 0, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 4, - moveNumber: 0, - moveSpeed: 0, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 5, - moveNumber: 1, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 5, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 6, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 6, - moveNumber: 3, - moveSpeed: 4, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 7, - moveNumber: 0, - moveSpeed: 4, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 7, - moveNumber: 3, - moveSpeed: 4, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 7, - moveNumber: 3, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 8, - moveNumber: 3, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 8, - moveNumber: 5, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 9, - moveNumber: 3, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 9, - moveNumber: 5, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 10, - moveNumber: 5, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 3, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 4, - moveNumber: 0, - moveSpeed: 0, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 4, - moveNumber: 1, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 4, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 4, - moveNumber: 1, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 5, - moveNumber: 1, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 5, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 5, - moveNumber: 1, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 5, - moveNumber: 2, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 5, - moveNumber: 3, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 5, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 5, - moveNumber: 2, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 6, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 6, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 6, - moveNumber: 2, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 6, - moveNumber: 2, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 6, - moveNumber: 4, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 6, - moveNumber: 2, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 7, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 7, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 7, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 7, - moveNumber: 2, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 7, - moveNumber: 4, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 7, - moveNumber: 2, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 8, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 8, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 8, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 8, - moveNumber: 2, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 8, - moveNumber: 4, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 8, - moveNumber: 2, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 8, - moveNumber: 4, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 9, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - { - number: 9, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 9, - moveNumber: 5, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 1 - }, - { - number: 10, - moveNumber: 0, - moveSpeed: 6, - maxDistance: 200, - maxMove: 1200, - repeat: 0 - }, - ]; - this.CLICK_DATA = - { - type: 1, - success: false, - round: 0, - totalSunCount: 0, - movedSunCount: 0, - sunSpeed: 0, - overlapSunCount: 0, - colorList: [], - duration: 0, - difficultyLevel: 0, - sunList: [], - stepTimeList: [], - remainder: 120 - }; - this.GAME_DATA = []; - }; - GameData.prototype.CLICK_init = function () { - this.CLICK_DATA = - { - type: 1, - success: false, - round: 0, - totalSunCount: 0, - movedSunCount: 0, - sunSpeed: 0, - overlapSunCount: 0, - colorList: [], - duration: 0, - difficultyLevel: 0, - sunList: [], - stepTimeList: [], - remainder: 120 - }; - }; - var GameData_1; - __decorate([ - property(cc.Label) - ], GameData.prototype, "label", void 0); - __decorate([ - property - ], GameData.prototype, "text", void 0); - GameData = GameData_1 = __decorate([ - ccclass - ], GameData); - return GameData; -}(cc.Component)); -exports.default = GameData; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lRGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXdmQztRQXJmRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7O1FBaWZ2QixpQkFBaUI7SUFDckIsQ0FBQztpQkF4Zm9CLFFBQVE7SUFzQnpCLHFDQUFxQztJQUNyQyxpQkFBaUI7SUFFakIsd0JBQXdCO0lBR3hCLHlCQUFNLEdBQU47UUFDSSxJQUFJLFVBQVEsQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO1lBQzVCLFVBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQzFCLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXRDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNsRTthQUNJO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixPQUFPO1NBQ1Y7SUFDTCxDQUFDO0lBRUQsd0JBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDWCxnQkFBZ0I7WUFDaEIsU0FBUyxFQUFDLENBQUM7WUFDWCxLQUFLLEVBQUMsQ0FBQztZQUNQLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBQyxRQUFRO1lBQ2YsTUFBTSxFQUFDLE1BQU07WUFDYixLQUFLLEVB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QyxFQUFFO2dCQUNWLFlBQVksRUFBQyxFQUFFO2dCQUNmLFNBQVMsRUFBQyxHQUFHO2FBQ2hCLENBQUE7UUFFTCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBRWhCLENBQUE7SUFDTCxDQUFDO0lBRUQsNkJBQVUsR0FBVjtRQUNJLElBQUksQ0FBQyxVQUFVO1lBQ2Y7Z0JBQ0ksSUFBSSxFQUFDLENBQUM7Z0JBQ04sT0FBTyxFQUFDLEtBQUs7Z0JBQ2IsS0FBSyxFQUFDLENBQUM7Z0JBQ1AsYUFBYSxFQUFDLENBQUM7Z0JBQ2YsYUFBYSxFQUFDLENBQUM7Z0JBQ2YsUUFBUSxFQUFDLENBQUM7Z0JBQ1YsZUFBZSxFQUFDLENBQUM7Z0JBQ2pCLFNBQVMsRUFBQyxFQUFFO2dCQUNaLFFBQVEsRUFBQyxDQUFDO2dCQUNWLGVBQWUsRUFBQyxDQUFDO2dCQUNqQixPQUFPLEVBQUMsRUFBRTtnQkFDVixZQUFZLEVBQUMsRUFBRTtnQkFDZixTQUFTLEVBQUMsR0FBRzthQUNoQixDQUFBO0lBQ0wsQ0FBQzs7SUFsZkQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzsyQ0FDSTtJQUd2QjtRQURDLFFBQVE7MENBQ2M7SUFOTixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBd2Y1QjtJQUFELGVBQUM7Q0F4ZkQsQUF3ZkMsQ0F4ZnFDLEVBQUUsQ0FBQyxTQUFTLEdBd2ZqRDtrQkF4Zm9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVEYXRhIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIEdNX0lORk86IHt9O1xyXG4gICAgQXVkaW9NYW5hZ2VyOiBhbnk7XHJcblxyXG4gICAgR0FNRV9EQVRBOiBhbnlbXTtcclxuICAgIExFVkVMX0lORk86IHsgLy/nrKzkuIDpmr7luqZcclxuICAgICAgICBudW1iZXI6IG51bWJlcjsgLy/lpKrpmLPmgLvmlbAgXHJcbiAgICAgICAgbW92ZU51bWJlcjogbnVtYmVyOyAvL+WkqumYs+WPr+enu+WKqOS4quaVsFxyXG4gICAgICAgIG1vdmVTcGVlZDogbnVtYmVyOyAvL+WkqumYs+enu+WKqOmAn+W6puetiee6p1xyXG4gICAgICAgIG1heERpc3RhbmNlOiBudW1iZXI7IC8v5biD5bGA5ZCO56e75Yqo5pyA5aSn6Led56a7XHJcbiAgICAgICAgbWF4TW92ZTogbnVtYmVyOyAvL+WIneWni+W4g+WxgOacgOWkp+enu+WKqOi3neemu1xyXG4gICAgICAgIHJlcGVhdDogbnVtYmVyOyAvL+aYr+WQpumHjeWPoO+8jOeOsOWcqDAg5LiN6YeN5Y+gIDEg6YeN5Y+gMeS4qlxyXG4gICAgfVtdO1xyXG4gICAgQ0xJQ0tfREFUQTogeyB0eXBlOiBudW1iZXI7IHN1Y2Nlc3M6IGJvb2xlYW47IHJvdW5kOiBudW1iZXI7IHRvdGFsU3VuQ291bnQ6IG51bWJlcjsgbW92ZWRTdW5Db3VudDogbnVtYmVyOyBzdW5TcGVlZDogbnVtYmVyOyBvdmVybGFwU3VuQ291bnQ6IG51bWJlcjsgY29sb3JMaXN0OiBhbnlbXTsgZHVyYXRpb246IG51bWJlcjsgZGlmZmljdWx0eUxldmVsOiBudW1iZXI7IHN1bkxpc3Q6IGFueVtdOyBzdGVwVGltZUxpc3Q6IGFueVtdOyByZW1haW5kZXI6IG51bWJlcjsgfTtcclxuXHJcbiAgICAvLyBMRVZFTF9JTkZPOiB7IG51bWJlcjogbnVtYmVyOyB9W107XHJcbiAgICAvLyBMRVZFTF9JTkZPOltdO1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIFxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBpZiAoR2FtZURhdGEuX2luc3RhbmNlID09IG51bGwpIHtcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlID0gdGhpcztcclxuICAgICAgICAgICAgY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuQXVkaW9NYW5hZ2VyID0gdGhpcy5ub2RlLmdldENvbXBvbmVudCgnQmFsbEF1ZGlvTWFuYWdlcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPID0geyBcclxuICAgICAgICAgICAgLy8gaXNFbmQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBtZWFuX1RpbWU6MCwgICAgICAgICAgICAgICAgLy/lubPlnYfmlL7nrq3pgJ/luqZcclxuICAgICAgICAgICAgdG90YWw6MCwgICAgICAgICAgICAgICAgICAgIC8v5oC75YWx5a+555qE5Liq5pWwXHJcbiAgICAgICAgICAgIGN1cnJTZWVkOiAyMDMyMTMsICAgICAgICAgICAvL+eUqOS6jumaj+acuuaVsOenjeWtkFxyXG4gICAgICAgICAgICBnYW1lSWQ6JzEwMDAwOScsXHJcbiAgICAgICAgICAgIHVzZXJJZDoyMDAxMzksXHJcbiAgICAgICAgICAgIGd1aWRlOnRydWUsICAgICAgICAgICAgICAgICAvL+aYr+WQpuacieW8leWvvFxyXG4gICAgICAgICAgICB1cmw6XCJodHRwOi8vYXBpLnNwYXJrdXMuY25cIixcclxuICAgICAgICAgICAgc3VjY2VzczpmYWxzZSxcclxuICAgICAgICAgICAgbWF0Y2hJZDpudWxsLFxyXG4gICAgICAgICAgICBjdXN0b206IDBcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuTEVWRUxfSU5GTyA9IFtcclxuICAgICAgICAgICAgeyAgIC8v56ys5LiA6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6MywgICAgICAgLy/lpKrpmLPmgLvmlbAgXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsICAgLy/lpKrpmLPlj6/np7vliqjkuKrmlbBcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDowLCAgICAvL+WkqumYs+enu+WKqOmAn+W6puetiee6p1xyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLCAvL+W4g+WxgOWQjuenu+WKqOacgOWkp+i3neemu1xyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjAgICAgICAgIC8v5piv5ZCm6YeN5Y+g77yM546w5ZyoMCDkuI3ph43lj6AgMSDph43lj6Ax5LiqXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5LqM6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NCxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MCxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDowLFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5LiJ6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NCxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MCxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDowLFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Zub6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NSxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MSxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5LqU6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NSxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MCxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5YWt6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NixcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MCxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5LiD6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NixcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MyxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo0LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5YWr6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NyxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MCxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo0LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Lmd6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NyxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MyxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo0LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6NyxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MyxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B5LiA6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6OCxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MyxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B5LqM6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6OCxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6NSxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B5LiJ6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6OSxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6MyxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B5Zub6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6OSxcclxuICAgICAgICAgICAgICAgIG1vdmVOdW1iZXI6NSxcclxuICAgICAgICAgICAgICAgIG1vdmVTcGVlZDo2LFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2U6MjAwLFxyXG4gICAgICAgICAgICAgICAgbWF4TW92ZToxMjAwLFxyXG4gICAgICAgICAgICAgICAgcmVwZWF0OjFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAgIC8v56ys5Y2B5LqU6Zq+5bqmXHJcbiAgICAgICAgICAgICAgICBudW1iZXI6MTAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzExIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjMsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzEyIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6MCxcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzEzIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjEsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE0IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE1IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjEsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE2IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjEsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE3IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE4IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjEsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzE5IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzIwIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjMsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzIxIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzIyIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzIzIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI0IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI1IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI2IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI3IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI4IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjYsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzI5IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzMwIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzMxIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzMyIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzMzIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM0IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjcsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM1IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM2IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM3IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM4IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzM5IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQwIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjIsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQxIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjgsXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjQsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQyIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjksXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDowXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQzIFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjksXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjAsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQ0IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjksXHJcbiAgICAgICAgICAgICAgICBtb3ZlTnVtYmVyOjUsXHJcbiAgICAgICAgICAgICAgICBtb3ZlU3BlZWQ6NixcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlOjIwMCxcclxuICAgICAgICAgICAgICAgIG1heE1vdmU6MTIwMCxcclxuICAgICAgICAgICAgICAgIHJlcGVhdDoxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgICAvLzQ1IFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyOjEwLFxyXG4gICAgICAgICAgICAgICAgbW92ZU51bWJlcjowLFxyXG4gICAgICAgICAgICAgICAgbW92ZVNwZWVkOjYsXHJcbiAgICAgICAgICAgICAgICBtYXhEaXN0YW5jZToyMDAsXHJcbiAgICAgICAgICAgICAgICBtYXhNb3ZlOjEyMDAsXHJcbiAgICAgICAgICAgICAgICByZXBlYXQ6MFxyXG4gICAgICAgICAgICB9LFxyXG5cclxuXHJcblxyXG4gICAgICAgIF1cclxuXHJcbiAgICAgICAgdGhpcy5DTElDS19EQVRBID0gXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6MSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ZmFsc2UsXHJcbiAgICAgICAgICAgICAgICByb3VuZDowLFxyXG4gICAgICAgICAgICAgICAgdG90YWxTdW5Db3VudDowLFxyXG4gICAgICAgICAgICAgICAgbW92ZWRTdW5Db3VudDowLFxyXG4gICAgICAgICAgICAgICAgc3VuU3BlZWQ6MCxcclxuICAgICAgICAgICAgICAgIG92ZXJsYXBTdW5Db3VudDowLFxyXG4gICAgICAgICAgICAgICAgY29sb3JMaXN0OltdLFxyXG4gICAgICAgICAgICAgICAgZHVyYXRpb246MCxcclxuICAgICAgICAgICAgICAgIGRpZmZpY3VsdHlMZXZlbDowLFxyXG4gICAgICAgICAgICAgICAgc3VuTGlzdDpbXSxcclxuICAgICAgICAgICAgICAgIHN0ZXBUaW1lTGlzdDpbXSxcclxuICAgICAgICAgICAgICAgIHJlbWFpbmRlcjoxMjBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkdBTUVfREFUQSA9IFtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgXVxyXG4gICAgfVxyXG5cclxuICAgIENMSUNLX2luaXQoKXtcclxuICAgICAgICB0aGlzLkNMSUNLX0RBVEEgPSBcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6MSxcclxuICAgICAgICAgICAgc3VjY2VzczpmYWxzZSxcclxuICAgICAgICAgICAgcm91bmQ6MCxcclxuICAgICAgICAgICAgdG90YWxTdW5Db3VudDowLFxyXG4gICAgICAgICAgICBtb3ZlZFN1bkNvdW50OjAsXHJcbiAgICAgICAgICAgIHN1blNwZWVkOjAsXHJcbiAgICAgICAgICAgIG92ZXJsYXBTdW5Db3VudDowLFxyXG4gICAgICAgICAgICBjb2xvckxpc3Q6W10sXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOjAsXHJcbiAgICAgICAgICAgIGRpZmZpY3VsdHlMZXZlbDowLFxyXG4gICAgICAgICAgICBzdW5MaXN0OltdLFxyXG4gICAgICAgICAgICBzdGVwVGltZUxpc3Q6W10sXHJcbiAgICAgICAgICAgIHJlbWFpbmRlcjoxMjBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Notification.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'f2518+0IHRGOY+ueIhGtEeA', 'Notification'); -// Script/Notification.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Notification = void 0; -//全局通知 -var Notification = { - _eventMap: [], - on: function (masgId, callback, target) { - if (this._eventMap[masgId] === undefined) { - this._eventMap[masgId] = []; - } - this._eventMap[masgId].push({ callback: callback, target: target }); - }, - emit: function (masgId, parameter) { - var array = this._eventMap[masgId]; - if (array === undefined) - return; - for (var i = 0; i < array.length; i++) { - var element = array[i]; - if (element) - element.callback.call(element.target, parameter); - } - }, - off: function (masgId, callback) { - var array = this._eventMap[masgId]; - if (array === undefined) - return; - for (var i = 0; i < array.length; i++) { - var element = array[i]; - if (element && element.callback === callback) { - array[i] = undefined; - break; - } - } - }, - offMasgId: function (masgId) { - this._eventMap[masgId] = undefined; - }, - removeAllMsg: function () { - for (var k in this._eventMap) { - if (this._eventMap[k]) { - this.offMasgId(k); - } - } - } -}; -exports.Notification = Notification; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxOb3RpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTTtBQUNOLElBQUksWUFBWSxHQUFHO0lBQ2YsU0FBUyxFQUFFLEVBQUU7SUFDYixFQUFFLEVBQUUsVUFBVSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU07UUFDbEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxFQUFFLFVBQVUsTUFBTSxFQUFFLFNBQVM7UUFDN0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTztRQUVoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxPQUFPO2dCQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDakU7SUFDTCxDQUFDO0lBRUQsR0FBRyxFQUFFLFVBQVUsTUFBTSxFQUFFLFFBQVE7UUFDM0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTztRQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7Z0JBQzFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUM7Z0JBQ3JCLE1BQU07YUFDVDtTQUNKO0lBQ0wsQ0FBQztJQUVELFNBQVMsRUFBRSxVQUFVLE1BQU07UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQVksRUFBRTtRQUNWLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMxQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckI7U0FDSjtJQUNMLENBQUM7Q0FDSixDQUFDO0FBRU8sb0NBQVkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvL+WFqOWxgOmAmuefpVxudmFyIE5vdGlmaWNhdGlvbiA9IHtcbiAgICBfZXZlbnRNYXA6IFtdLFxuICAgIG9uOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaywgdGFyZ2V0KSB7XG4gICAgICAgIGlmICh0aGlzLl9ldmVudE1hcFttYXNnSWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50TWFwW21hc2dJZF0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdLnB1c2goeyBjYWxsYmFjazogY2FsbGJhY2ssIHRhcmdldDogdGFyZ2V0IH0pO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbiAobWFzZ0lkLCBwYXJhbWV0ZXIpIHtcbiAgICAgICAgbGV0IGFycmF5ID0gdGhpcy5fZXZlbnRNYXBbbWFzZ0lkXTtcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9IGFycmF5W2ldO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuY2FsbGJhY2suY2FsbChlbGVtZW50LnRhcmdldCwgcGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBvZmY6IGZ1bmN0aW9uIChtYXNnSWQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XG4gICAgICAgIGlmIChhcnJheSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNhbGxiYWNrID09PSBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9mZk1hc2dJZDogZnVuY3Rpb24gKG1hc2dJZCkge1xuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gdW5kZWZpbmVkO1xuICAgIH0sXG5cbiAgICByZW1vdmVBbGxNc2c6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChsZXQgayBpbiB0aGlzLl9ldmVudE1hcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2V2ZW50TWFwW2tdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vZmZNYXNnSWQoayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgeyBOb3RpZmljYXRpb24gfTsiXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Helloworld.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'e1b90/rohdEk4SdmmEZANaD', 'Helloworld'); -// Script/Helloworld.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var GameData_1 = require("./GameData"); -var List_1 = require("./ListView/List"); -var serverAPI_1 = require("./crypto/serverAPI"); -// import { apiSign } from "./crypto/sign"; -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Helloworld = /** @class */ (function (_super) { - __extends(Helloworld, _super); - function Helloworld() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.Player = null; - _this.selfNode = null; - _this.phone = null; - return _this; - } - Helloworld.prototype.onLoad = function () { - this.rankList = cc.find("ScrollView", this.node).getComponent(List_1.default); - this.listData = []; - this.selfData = null; - this.rankNumber = 100; - this.rankTotal = 100; - this.selfNode.opacity = 0; - }; - Helloworld.prototype.start = function () { - this.getRank(); - }; - Helloworld.prototype.getRankData = function (data) { - if (data) { - console.log(data); - this.listData = data.data.list; - this.selfData = data.data.info; - var rankData = []; - var self = false; - for (var i = 0; i <= this.listData.length - 1; i++) { - rankData.push({ rank: (i + 1), name: this.listData[i].nickName, total: this.listData[i].totalSunCount, pic: this.listData[i].pic }); - if (GameData_1.default._instance.GM_INFO.userId == this.listData[i].userId) { - self = true; - this.rankNumber = i; - this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = (i + 1) + ""; - } - if (i == (this.listData.length - 1) && self == false) { - this.rankNumber = i; - this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = "99+"; - } - } - this.rankList.setData(rankData); - if (this.selfData.nickName.length > 6) { - this.selfData.nickName = this.selfData.nickName.substring(0, 6) + "..."; - } - this.selfNode.getChildByName("nameLab").getComponent(cc.Label).string = this.selfData.nickName; - this.selfNode.getChildByName("totalLab").getComponent(cc.Label).string = this.selfData.totalSunCount; - this.setPic(this.selfData.pic); - this.setPic2(this.selfData.pic); - if (this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string == "1") { - this.selfNode.getChildByName("rank").getChildByName("one").active = true; - } - else if (this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string == "2") { - this.selfNode.getChildByName("rank").getChildByName("two").active = true; - } - else if (this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string == "3") { - this.selfNode.getChildByName("rank").getChildByName("three").active = true; - } - else { - // this.selfNode.getChildByName("four").active = true; - } - this.selfNode.opacity = 255; - } - }; - Helloworld.prototype.backClick = function () { - cc.director.loadScene("LoadScene"); - }; - Helloworld.prototype.playerAction = function () { - var _this = this; - //-254 377 210 453 - var time = 1; - this.tween = cc.tween(this.Player) - .to(2, { position: cc.v3(210, 453, 0) }) - .start(); - time = (this.listData.length - this.rankNumber) / this.listData.length; - if (this.listData.length >= 99) { - if (this.rankNumber >= 99) { - time = (Math.random() * 49 + 1) / 100; - } - } - setTimeout(function () { - if (_this.tween) - _this.tween.stop(); - }, time * 2000); - }; - Helloworld.prototype.getRank = function () { - var postData = { - "page": 1, - "pageSize": 100 - }; - serverAPI_1.default.rankData(2, this.getRankData.bind(this), postData); - }; - Helloworld.prototype.setPic = function (pic) { - var _this = this; - this.phone.node.parent.getChildByName("icon").active = false; - this.phone.node.active = false; - var url = pic; - fetch(url) - .then(function (response) { - return response.headers.get('Content-Length'); - }) - .then(function (errNo) { - if (errNo == "5093") { - _this.phone.node.parent.getChildByName("icon").active = true; - } - }) - .catch(function (error) { - console.error('Error fetching X-Info:', error); - }); - var self = this; - cc.assetManager.loadRemote(url, { ext: '.jpg' }, function (err, texture) { - if (texture) { - _this.phone.node.active = true; - self.phone.spriteFrame = new cc.SpriteFrame(texture); - } - else { - console.log(err, texture); - } - }); - }; - Helloworld.prototype.setPic2 = function (pic) { - var _this = this; - this.Player.getChildByName("mask").getChildByName("icon").active = false; - this.Player.getChildByName("mask").getChildByName("phone").active = false; - var url = pic; - fetch(url) - .then(function (response) { - return response.headers.get('Content-Length'); - }) - .then(function (errNo) { - if (errNo == "5093") { - _this.Player.getChildByName("mask").getChildByName("icon").active = true; - } - }) - .catch(function (error) { - console.error('Error fetching X-Info:', error); - }); - var self = this; - cc.assetManager.loadRemote(url, { ext: '.jpg' }, function (err, texture) { - if (texture) { - _this.Player.getChildByName("mask").getChildByName("phone").active = true; - _this.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) - .spriteFrame = new cc.SpriteFrame(texture); - setTimeout(function () { - _this.playerAction(); - }, 500); - // console.log("设置头像成功",err); - } - else { - // console.log("设置头像失败",url); - console.log(err, texture); - setTimeout(function () { - _this.playerAction(); - }, 500); - } - }); - }; - __decorate([ - property(cc.Node) - ], Helloworld.prototype, "Player", void 0); - __decorate([ - property(cc.Node) - ], Helloworld.prototype, "selfNode", void 0); - __decorate([ - property(cc.Sprite) - ], Helloworld.prototype, "phone", void 0); - Helloworld = __decorate([ - ccclass - ], Helloworld); - return Helloworld; -}(cc.Component)); -exports.default = Helloworld; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxIZWxsb3dvcmxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUFrQztBQUNsQyx3Q0FBbUM7QUFDbkMsZ0RBQTBDO0FBQzFDLDJDQUEyQztBQUVyQyxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUF3Qyw4QkFBWTtJQUFwRDtRQUFBLHFFQTRLQztRQXpLRyxZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGNBQVEsR0FBWSxJQUFJLENBQUM7UUFHekIsV0FBSyxHQUFjLElBQUksQ0FBQzs7SUFtSzVCLENBQUM7SUExSkcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFFLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELDBCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELGdDQUFXLEdBQVgsVUFBWSxJQUFJO1FBQ1osSUFBRyxJQUFJLEVBQUM7WUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDL0IsSUFBSSxDQUFD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QUFHLENBQUMsQ0FBQztnQkFDUiw2QkFBNkI7YUFDaEM7aUJBQ0c7Z0JBQ0EsNkJBQTZCO2dCQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxPQUFPLENBQUMsQ0FBQTtnQkFDeEIsVUFBVSxDQUFDO29CQUNQLEtBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1g7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUF2S0Q7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs4Q0FDSztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2dEQUNPO0lBR3pCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7NkNBQ0k7SUFUUCxVQUFVO1FBRDlCLE9BQU87T0FDYSxVQUFVLENBNEs5QjtJQUFELGlCQUFDO0NBNUtELEFBNEtDLENBNUt1QyxFQUFFLENBQUMsU0FBUyxHQTRLbkQ7a0JBNUtvQixVQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdhbWVEYXRhIGZyb20gXCIuL0dhbWVEYXRhXCI7XHJcbmltcG9ydCBMaXN0IGZyb20gXCIuL0xpc3RWaWV3L0xpc3RcIjtcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuLy8gaW1wb3J0IHsgYXBpU2lnbiB9IGZyb20gXCIuL2NyeXB0by9zaWduXCI7XHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGVsbG93b3JsZCBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBQbGF5ZXI6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGUpXHJcbiAgICBwaG9uZTogY2MuU3ByaXRlID0gbnVsbDtcclxuXHJcbiAgICBwcml2YXRlIHJhbmtMaXN0OiBMaXN0OyAgICAgICAgIC8v5o6S6KGM5qacXHJcbiAgICB0d2VlbjogY2MuVHdlZW48Y2MuTm9kZT47XHJcbiAgICBsaXN0RGF0YTogYW55O1xyXG4gICAgc2VsZkRhdGE6IGFueTtcclxuICAgIHJhbmtOdW1iZXI6IG51bWJlcjtcclxuICAgIHJhbmtUb3RhbDogbnVtYmVyO1xyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLnJhbmtMaXN0ID0gY2MuZmluZChcIlNjcm9sbFZpZXdcIiwgdGhpcy5ub2RlKS5nZXRDb21wb25lbnQoTGlzdCk7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZkRhdGEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmFua051bWJlciA9IDEwMDtcclxuICAgICAgICB0aGlzLnJhbmtUb3RhbD0gMTAwO1xyXG4gICAgICAgIHRoaXMuc2VsZk5vZGUub3BhY2l0eSA9IDA7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YSA9IGRhdGEuZGF0YS5saXN0O1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgICAgIGxldCByYW5rRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgc2VsZiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDtpPD10aGlzLmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgICAgICByYW5rRGF0YS5wdXNoKHtyYW5rOihpKzEpLCBuYW1lOnRoaXMubGlzdERhdGFbaV0ubmlja05hbWUsIHRvdGFsOnRoaXMubGlzdERhdGFbaV0udG90YWxTdW5Db3VudCwgcGljOnRoaXMubGlzdERhdGFbaV0ucGljfSk7XHJcbiAgICAgICAgICAgICAgICBpZihHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPT0gdGhpcy5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPShpKzEpICsgXCJcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihpID09ICh0aGlzLmxpc3REYXRhLmxlbmd0aC0xKSAmJiBzZWxmID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmtOdW1iZXIgPSBpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yYW5rTGlzdC5zZXREYXRhKHJhbmtEYXRhKTtcclxuICAgICAgICAgICAgaWYodGhpcy5zZWxmRGF0YS5uaWNrTmFtZS5sZW5ndGggPiA2KXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEubmlja05hbWU9IHRoaXMuc2VsZkRhdGEubmlja05hbWUuc3Vic3RyaW5nKDAsNikgKyBcIi4uLlwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLnRvdGFsU3VuQ291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGljKHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRQaWMyKHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgaWYodGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPT0gXCIxXCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJvbmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID09IFwiMlwiKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZih0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua0xhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9PSBcIjNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcInRocmVlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJmb3VyXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5vcGFjaXR5ID0gMjU1O1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBiYWNrQ2xpY2soKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcGxheWVyQWN0aW9uKCl7XHJcbiAgICAgICAgLy8tMjU0IDM3NyAgMjEwIDQ1M1xyXG4gICAgICAgIGxldCB0aW1lID0gMTtcclxuICAgICAgICB0aGlzLnR3ZWVuID0gY2MudHdlZW4odGhpcy5QbGF5ZXIpXHJcbiAgICAgICAgLnRvKDIse3Bvc2l0aW9uOmNjLnYzKDIxMCw0NTMsMCl9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIHRpbWUgPSAodGhpcy5saXN0RGF0YS5sZW5ndGggLSB0aGlzLnJhbmtOdW1iZXIpL3RoaXMubGlzdERhdGEubGVuZ3RoO1xyXG4gICAgICAgIGlmKHRoaXMubGlzdERhdGEubGVuZ3RoID49IDk5KXtcclxuICAgICAgICAgICAgaWYodGhpcy5yYW5rTnVtYmVyID49IDk5KXtcclxuICAgICAgICAgICAgICAgIHRpbWUgPSAoTWF0aC5yYW5kb20oKSo0OSsxKS8xMDBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLnR3ZWVuKXRoaXMudHdlZW4uc3RvcCgpO1xyXG4gICAgICAgIH0sIHRpbWUqMjAwMCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGdldFJhbmsoKXtcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwicGFnZVwiOjEsXHJcbiAgICAgICAgICAgIFwicGFnZVNpemVcIjoxMDBcclxuICAgICAgICB9OyBcclxuICAgICAgICBIdHRwVXRpbC5yYW5rRGF0YSgyLHRoaXMuZ2V0UmFua0RhdGEuYmluZCh0aGlzKSxwb3N0RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFBpYyhwaWMpe1xyXG4gICAgICAgIHRoaXMucGhvbmUubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucGhvbmUubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBsZXQgdXJsID0gcGljO1xyXG4gICAgICAgIGZldGNoKHVybClcclxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1MZW5ndGgnKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKGVyck5vID0+IHtcclxuICAgICAgICAgICAgaWYoZXJyTm8gPT0gXCI1MDkzXCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5waG9uZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUodXJsLCB7ZXh0OicuanBnJ30sKGVyciwgdGV4dHVyZTpjYy5UZXh0dXJlMkQpID0+IHtcclxuICAgICAgICAgICAgaWYodGV4dHVyZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBob25lLm5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHNlbGYucGhvbmUuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0UGljMihwaWMpe1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHVybCA9IHBpYztcclxuICAgICAgICBmZXRjaCh1cmwpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIFgtSW5mbzonLCBlcnJvcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHVybCwge2V4dDonLmpwZyd9LChlcnIsIHRleHR1cmU6Y2MuVGV4dHVyZTJEKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHRleHR1cmUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcInBob25lXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpXHJcbiAgICAgICAgICAgICAgICAuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXllckFjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6K6+572u5aS05YOP5oiQ5YqfXCIsZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLorr7nva7lpLTlg4/lpLHotKVcIix1cmwpO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyLHRleHR1cmUpXHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXllckFjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Storage.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'b5d92kgCRlKu5IYKnaGPgoa', 'Storage'); -// Script/Storage.js - -"use strict"; - -// var jequry = require("jquery"); -// var coinManager = require("coinManager"); -var StorageMessage = { - getStorage: function getStorage(key) { - var result = null; - - if (cc.sys.localStorage.getItem(key)) { - var result = cc.sys.localStorage.getItem(key); - } - - if (result) { - result = JSON.parse(result); - } - - return result; - }, - setStorage: function setStorage(key, value) { - //主动拉起分享接口 - var temp = JSON.stringify(value); - cc.sys.localStorage.setItem(key, temp); // debugger; - // var temp = cc.sys.localStorage.getItem(key); - // debugger; - }, - removeStorage: function removeStorage(key) { - //主动删除消息接口 - if (cc.sys.localStorage.getItem(key)) { - cc.sys.localStorage.removeItem(key); - } - } -}; -module.exports = { - StorageMessage: StorageMessage -}; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTdG9yYWdlLmpzIl0sIm5hbWVzIjpbIlN0b3JhZ2VNZXNzYWdlIiwiZ2V0U3RvcmFnZSIsImtleSIsInJlc3VsdCIsImNjIiwic3lzIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsIkpTT04iLCJwYXJzZSIsInNldFN0b3JhZ2UiLCJ2YWx1ZSIsInRlbXAiLCJzdHJpbmdpZnkiLCJzZXRJdGVtIiwicmVtb3ZlU3RvcmFnZSIsInJlbW92ZUl0ZW0iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUNBO0FBQ0E7QUFDQSxJQUFJQSxjQUFjLEdBQUc7QUFDakJDLEVBQUFBLFVBQVUsRUFBRyxvQkFBU0MsR0FBVCxFQUFhO0FBQ3RCLFFBQUlDLE1BQU0sR0FBRyxJQUFiOztBQUNBLFFBQUdDLEVBQUUsQ0FBQ0MsR0FBSCxDQUFPQyxZQUFQLENBQW9CQyxPQUFwQixDQUE0QkwsR0FBNUIsQ0FBSCxFQUFvQztBQUNsQyxVQUFJQyxNQUFNLEdBQUdDLEVBQUUsQ0FBQ0MsR0FBSCxDQUFPQyxZQUFQLENBQW9CQyxPQUFwQixDQUE0QkwsR0FBNUIsQ0FBYjtBQUNEOztBQUVELFFBQUdDLE1BQUgsRUFBVTtBQUNSQSxNQUFBQSxNQUFNLEdBQUdLLElBQUksQ0FBQ0MsS0FBTCxDQUFXTixNQUFYLENBQVQ7QUFDRDs7QUFDRCxXQUFPQSxNQUFQO0FBQ0gsR0FYZ0I7QUFZakJPLEVBQUFBLFVBQVUsRUFBRyxvQkFBU1IsR0FBVCxFQUFhUyxLQUFiLEVBQW1CO0FBQzVCO0FBQ0EsUUFBSUMsSUFBSSxHQUFHSixJQUFJLENBQUNLLFNBQUwsQ0FBZUYsS0FBZixDQUFYO0FBQ0FQLElBQUFBLEVBQUUsQ0FBQ0MsR0FBSCxDQUFPQyxZQUFQLENBQW9CUSxPQUFwQixDQUE0QlosR0FBNUIsRUFBaUNVLElBQWpDLEVBSDRCLENBSTVCO0FBQ0E7QUFDQTtBQUNILEdBbkJnQjtBQW9CakJHLEVBQUFBLGFBQWEsRUFBRyx1QkFBU2IsR0FBVCxFQUFhO0FBQzNCO0FBQ0EsUUFBR0UsRUFBRSxDQUFDQyxHQUFILENBQU9DLFlBQVAsQ0FBb0JDLE9BQXBCLENBQTRCTCxHQUE1QixDQUFILEVBQW9DO0FBQ2xDRSxNQUFBQSxFQUFFLENBQUNDLEdBQUgsQ0FBT0MsWUFBUCxDQUFvQlUsVUFBcEIsQ0FBK0JkLEdBQS9CO0FBQ0Q7QUFDRjtBQXpCZ0IsQ0FBckI7QUE0QkFlLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNmbEIsRUFBQUEsY0FBYyxFQUFFQTtBQURELENBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIHZhciBqZXF1cnkgPSByZXF1aXJlKFwianF1ZXJ5XCIpO1xuLy8gdmFyIGNvaW5NYW5hZ2VyID0gcmVxdWlyZShcImNvaW5NYW5hZ2VyXCIpO1xudmFyIFN0b3JhZ2VNZXNzYWdlID0ge1xuICAgIGdldFN0b3JhZ2UgOiBmdW5jdGlvbihrZXkpe1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVsbDtcbiAgICAgICAgaWYoY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpe1xuICAgICAgICAgIHZhciByZXN1bHQgPSBjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYocmVzdWx0KXtcbiAgICAgICAgICByZXN1bHQgPSBKU09OLnBhcnNlKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICAgIHNldFN0b3JhZ2UgOiBmdW5jdGlvbihrZXksdmFsdWUpe1xuICAgICAgICAvL+S4u+WKqOaLiei1t+WIhuS6q+aOpeWPo1xuICAgICAgICB2YXIgdGVtcCA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdGVtcClcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIC8vIHZhciB0ZW1wID0gY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgIH0sXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAvL+S4u+WKqOWIoOmZpOa2iOaBr+aOpeWPo1xuICAgICAgaWYoY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpe1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICAgICAgfVxuICAgIH0sXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgU3RvcmFnZU1lc3NhZ2U6IFN0b3JhZ2VNZXNzYWdlLFxufSJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/GameManager.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'b0432BA295DjIOcuitdGKO1', 'GameManager'); -// Script/GameManager.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var GameData_1 = require("./GameData"); -var Notification_1 = require("./Notification"); -var serverAPI_1 = require("./crypto/serverAPI"); -var GameManager = /** @class */ (function (_super) { - __extends(GameManager, _super); - function GameManager() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.ball = null; - _this.qiu1 = null; - _this.qiu2 = null; - _this.qiu3 = null; - _this.linePrefab = null; - _this.hit = null; - _this.bg1 = null; - _this.bg2 = null; - _this.time = null; - // LIFE-CYCLE CALLBACKS: - _this.begin = false; - _this.fuhuo = false; - _this.over = false; - _this.show = false; - _this.levelLabel = null; - return _this; - } - GameManager.prototype.onLoad = function () { - }; - GameManager.prototype.start = function () { - this.fit(); - this.init(); - }; - GameManager.prototype.fit = function () { - this.fitTop = 450; //600 - this.fitBot = -600; //-700 - var jg = this.setFit(); - if (!jg) { - this.fitTop = 600; - this.fitBot = -700; - } - }; - GameManager.prototype.getSetScreenResolutionFlag = function () { - var size = cc.winSize; - var width = size.width; - var height = size.height; - if ((height / width) > (16.2 / 9)) - return false; - return true; - }; - //判断全面屏适配 - GameManager.prototype.setFit = function () { - var flag = this.getSetScreenResolutionFlag(); - if (flag) { - } - else { - } - return flag; - }; - //初始化数据 - GameManager.prototype.init = function () { - this.node.getChildByName("GameOver").zIndex = 100; - this.node.getChildByName("GameOver").active = false; - this.ball.zIndex = 100; - this.bg1 = this.node.getChildByName("bg1"); - this.bg2 = this.node.getChildByName("bg2"); - this.time = this.node.getChildByName("Top").getChildByName("time").getComponent(cc.Label); - this.node.getChildByName("showBtn").active = false; - this.begin = false; - this.over = false; - this.fuhuo = true; - this.pause = true; - this.show = false; - this.round = 0; - this.level = 2; - this.countTime = 60; - if (GameData_1.default._instance.GM_INFO.custom != 0) { - this.level = GameData_1.default._instance.GM_INFO.custom; - // this.levelLabel.string = this.level + ""; - GameData_1.default._instance.GM_INFO.custom += 1; - this.countTime = 12000000; - } - // this.levelLabel.string = this.level + ""; - this.timeCount = 0.1; - this.clickNow = 0; - this.clickCount = 0; - this.timeStart = 0; - this.repeat = -1; - this.numberRepeat = -1; - this.route_Array = []; - this.moveArray = []; - this.now_Array = []; - this.ball_Array = []; - this.Pos_Array = []; - this.time_Array = []; - this.color_Array = []; - GameData_1.default._instance.GAME_DATA = []; - GameData_1.default._instance.GM_INFO.success = false; - this.startTime = 0; - this.overTime = 0; - this.winTime = 0; - GameData_1.default._instance.GM_INFO.total = 0; - GameData_1.default._instance.GM_INFO.mean_Time = 0; - this.schedule(this.updateCountDownTime, 1); - this.startGame(); - }; - GameManager.prototype.backScene = function () { - cc.director.loadScene("LoadScene"); - }; - //下一关,或者重新开始,或者返回上一关,根据level决定 - GameManager.prototype.reStart = function (type) { - // if(GameData._instance.GM_INFO.custom != 0){ - // cc.director.loadScene("LoadScene"); - // return; - // } - this.node.getChildByName("showBtn").active = false; - this.destroyLine(); - this.timeCount = 0.1; - this.clickNow = 0; - this.timeStart = 0; - this.repeat = -1; - this.numberRepeat = -1; - this.begin = false; - this.route_Array = []; - this.now_Array = []; - this.ball_Array = []; - this.Pos_Array = []; - this.moveArray = []; - this.time_Array = []; - this.color_Array = []; - if (type == 0) { - this.bgMove(1); - } - else if (type == 1) { - this.startGame(); - } - else if (type == 2) { - this.bgMove(-1); - } - }; - GameManager.prototype.begin_Guide = function () { - }; - //获取时间戳 - GameManager.prototype.getTime = function () { - var timestamp = new Date().getTime(); - return timestamp; - }; - //获胜 - GameManager.prototype.passLevel = function () { - var _this = this; - this.destroyLine(); - if (this.over == false && this.countTime >= 0) { - var timeArray_1 = []; - var timeCount = 0; - var ball_1 = this.ball_Array[0]; - for (var i = 1; i < this.ball_Array.length; i++) { - var time = this.calculateDistance2(this.ball_Array[i].x, this.ball_Array[i].y, this.ball_Array[i - 1].x, this.ball_Array[i - 1].y); - timeArray_1.push(time); - } - var _loop_1 = function (k) { - setTimeout(function () { - cc.tween(ball_1) - .to(timeArray_1[k - 1], { x: _this.ball_Array[k].x, y: _this.ball_Array[k].y }) - .call(function () { - _this.ball_Array[k].active = false; - if (k == _this.ball_Array.length - 1) { - setTimeout(function () { - _this.ball.opacity = 255; - _this.ball.position = cc.v3(ball_1.x, ball_1.y, 0); - ball_1.active = false; - _this.clearSun(); - _this.reStart(0); - }, 200); - } - }) - .start(); - }, timeCount * 1000); - timeCount += (timeArray_1[k - 1] + 0.1); - }; - for (var k = 1; k < this.ball_Array.length; k++) { - _loop_1(k); - } - } - }; - //失败 - GameManager.prototype.loseLevel = function (type) { - var _this = this; - this.destroyLine(); - if (this.over == false && this.countTime >= 0) { - var ball_2 = this.ball_Array[0]; - var _loop_2 = function (k) { - cc.tween(this_1.ball_Array[k]) - .to(2, { x: ball_2.x, y: ball_2.y }) - .call(function () { - _this.ball_Array[k].active = false; - if (k == _this.ball_Array.length - 1) { - _this.ball.opacity = 255; - _this.ball.position = cc.v3(ball_2.x, ball_2.y, 0); - _this.clearSun(); - _this.reStart(type); - } - }) - .start(); - }; - var this_1 = this; - for (var k = 1; k < this.ball_Array.length; k++) { - _loop_2(k); - } - } - }; - GameManager.prototype.clearSun = function () { - for (var k = 0; k < this.ball_Array.length; k++) { - this.ball_Array[k].removeFromParent(); - this.ball_Array[k] = null; - } - }; - //点击太阳执行方法 - GameManager.prototype.clickSun = function (data) { - var _this = this; - if (this.begin == true) { - this.clickCount += 1; - var clickTime = this.getTime(); - this.time_Array.push((clickTime - this.timeStart)); - this.timeStart = this.getTime(); - if (data == this.clickNow) { - GameData_1.default._instance.AudioManager.playAudioButton(); - if (this.clickNow > 0) { - this.createLine(cc.v2(this.ball_Array[this.clickNow - 1].x, this.ball_Array[this.clickNow - 1].y), cc.v2(this.ball_Array[this.clickNow].x, this.ball_Array[this.clickNow].y), 0.2); - } - this.clickNow += 1; - // GameData._instance.GM_INFO.total += 1; - setTimeout(function () { - if (_this.ball_Array[_this.clickNow - 1]) - _this.ball_Array[_this.clickNow - 1].getChildByName("guang").active = false; - }, 200); - if (this.clickNow == this.now_Array.length) { - this.pause = true; - GameData_1.default._instance.GM_INFO.total += this.clickNow; - this.overTime = this.getTime(); - GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); - console.log(GameData_1.default._instance.GM_INFO.mean_Time); - var finish_time = parseInt((this.overTime - this.startTime) / 100 + ""); - this.startTime = 0; - this.overTime = 0; - var color = "y"; - if (this.level < 4 && this.level > 1) - color = "yr"; - else if (this.level >= 4) - color = "yrb"; - var win_1 = this.node.getChildByName("Win"); - win_1.active = true; - win_1.setScale(0); - GameData_1.default._instance.AudioManager.playWin(); - this.round += 1; - var sunArray = []; - if (this.moveArray.length > 0) { - for (var m = 0; m < this.moveArray.length; m++) { - if (m == this.repeat || m == this.numberRepeat) { - this.moveArray[m] = 2; - } - sunArray.push(this.moveArray[m]); - } - } - else { - for (var m = 0; m < this.ball_Array.length; m++) { - if (m == this.repeat || m == this.numberRepeat) { - sunArray.push(2); - } - else - sunArray.push(0); - } - } - GameData_1.default._instance.CLICK_DATA = - { - type: 1, - success: true, - round: this.round, - totalSunCount: this.now_Array.length, - movedSunCount: GameData_1.default._instance.LEVEL_INFO[this.level - 1].moveNumber, - sunSpeed: GameData_1.default._instance.LEVEL_INFO[this.level - 1].moveSpeed, - overlapSunCount: GameData_1.default._instance.LEVEL_INFO[this.level - 1].repeat, - colorList: this.color_Array, - duration: finish_time / 10, - difficultyLevel: this.level, - sunList: sunArray, - stepTimeList: this.time_Array, - remainder: this.countTime - }; - this.outPut(); - this.setData(); - cc.tween(win_1) - .delay(0.4) - .to(0.01, { scale: 2.5 }) - .to(0.35, { scale: 1 }) - .delay(0.4) - .call(function () { - win_1.active = false; - _this.destroyLine(); - if (_this.over == false && _this.countTime >= 0) { - if (_this.level >= 15) { - GameData_1.default._instance.GM_INFO.success = true; - _this.level += 0; - // this.levelLabel.string = this.level + ""; - _this.fuhuo = true; - _this.passLevel(); - } - else { - _this.level += 1; - // this.levelLabel.string = this.level + ""; - _this.fuhuo = true; - _this.passLevel(); - } - } - }) - .start(); - } - } - else { - this.setLoss(); - } - // this.hitAction(data) - } - }; - GameManager.prototype.setLoss = function () { - GameData_1.default._instance.AudioManager.playWarning(); - this.begin = false; - this.overTime = this.getTime(); - GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); - console.log(GameData_1.default._instance.GM_INFO.mean_Time); - var finish_time = parseInt((this.overTime - this.startTime) / 100 + ""); - this.startTime = 0; - this.overTime = 0; - var color = "y"; - if (this.level < 4 && this.level > 1) - color = "yr"; - else if (this.level >= 4) - color = "yrb"; - this.round += 1; - var sunArray = []; - if (this.moveArray.length > 0) { - for (var m = 0; m < this.moveArray.length; m++) { - if (m == this.repeat || m == this.numberRepeat) { - this.moveArray[m] = 2; - } - sunArray.push(this.moveArray[m]); - } - } - else { - for (var m = 0; m < this.ball_Array.length; m++) { - if (m == this.repeat || m == this.numberRepeat) { - sunArray.push(2); - } - else - sunArray.push(0); - } - } - GameData_1.default._instance.CLICK_DATA = - { - type: 1, - success: false, - round: this.round, - totalSunCount: this.now_Array.length, - movedSunCount: GameData_1.default._instance.LEVEL_INFO[this.level - 1].moveNumber, - sunSpeed: GameData_1.default._instance.LEVEL_INFO[this.level - 1].moveSpeed, - overlapSunCount: GameData_1.default._instance.LEVEL_INFO[this.level - 1].repeat, - colorList: this.color_Array, - duration: finish_time / 10, - difficultyLevel: this.level, - sunList: sunArray, - stepTimeList: this.time_Array, - remainder: this.countTime - }; - this.outPut(); - this.setData(); - if (this.fuhuo == true) { - this.fuhuo = false; - this.loseLevel(1); - } - else { - if (this.level > 2) { - this.level -= 1; - // this.levelLabel.string = this.level + ""; - this.fuhuo = true; - // this.fuhuo = false; - this.loseLevel(2); - } - else { - this.loseLevel(1); - } - } - var over = this.node.getChildByName("Over"); - cc.tween(over) - .to(0.25, { opacity: 255 }) - .delay(0.1) - .to(0.2, { opacity: 0 }) - .delay(0.1) - .to(0.15, { opacity: 255 }) - .delay(0.1) - .to(0.1, { opacity: 0 }) - .start(); - }; - GameManager.prototype.hitAction = function (data) { - var _this = this; - this.hit.active = true; - this.hit.opacity = 0; - this.hit.setPosition; - this.hit.setPosition(this.ball_Array[data].x + 35, this.ball_Array[data].y + 35); - cc.tween(this.hit) - .to(0, { opacity: 255 }) - .to(0.2, { position: cc.v3(this.hit.x - 35, this.hit.y - 35, 0) }) - .delay(0.2) - .to(0.1, { opacity: 0 }) - .call(function () { - _this.hit.active = false; - }) - .start(); - }; - //开始游戏 - GameManager.prototype.startGame = function () { - if (this.over == false && this.countTime > 0) { - this.pause = true; - this.createSun(); - this.begin = false; - cc.tween(this.ball) - .to(0.5, { opacity: 255, scale: 1.3 }) - .start(); - // this.runGame() - } - }; - GameManager.prototype.runGame = function () { - var _this = this; - var time = -650; - var _loop_3 = function (i) { - time = this_2.now_Array[i].time * 1000 + time; - setTimeout(function () { - if (_this.over == false) { - var temp = _this.now_Array[i].timeCount; - if (temp > 0.5) - temp = 0.5; - if (i != 0) { - if (_this.ball && _this.now_Array[i]) { - _this.createLine(cc.v2(_this.ball.x, _this.ball.y), cc.v2(_this.now_Array[i].x, _this.now_Array[i].y), _this.now_Array[i].time - temp); - } - } - cc.tween(_this.ball) - .to(_this.now_Array[i].time - temp, { x: _this.now_Array[i].x, y: _this.now_Array[i].y }) - .to(0.1, { scale: 1 }) - .call(function () { - _this.createBall(i, _this.now_Array[i].color, _this.now_Array[i].speed, _this.now_Array[i].repeat); - if (i == _this.now_Array.length - 1) { - _this.ball.opacity = 0; - setTimeout(function () { - _this.destroyLine(); - _this.beginGame(); - if (GameData_1.default._instance.LEVEL_INFO[_this.level - 1].moveNumber < 1) { - _this.pause = false; - } - else { - _this.moveAction(); - } - }, 150); - } - }) - .start(); - } - }, time); - }; - var this_2 = this; - for (var i = 0; i < this.now_Array.length; i++) { - _loop_3(i); - } - }; - GameManager.prototype.createMove = function () { - var _this = this; - if (this.over == false) { - var info = GameData_1.default._instance.LEVEL_INFO[this.level - 1]; - //改变移动速度 - var speed = 7; - if (info.moveSpeed >= 2) { - speed = 7 - info.moveSpeed / 2; - } - if (info.repeat == 1) { - this.repeat = parseInt((Math.random() * (info.number - 1) + 1) + ""); - var tempNumber = 0; - // this.repeat = 4; - if (this.repeat > 4) { - this.numberRepeat = parseInt(Math.random() * 4 + ""); - if (this.repeat == (info.number - 1)) //如果是最后一个 不能跟第一个重叠 - this.numberRepeat = this.repeat - parseInt((Math.random() * 3 + 2) + ""); - tempNumber = this.Pos_Array[this.numberRepeat]; - this.Pos_Array[this.repeat] = tempNumber; - } - else { // 0 1 2 3 4 5 - // 6 - 3 - 1 = 2 4 01 4 - if (this.repeat == 0) - this.repeat = 1; - if ((info.number - 1 - this.repeat) == 2) { - this.numberRepeat = info.number - 1; - tempNumber = this.Pos_Array[this.numberRepeat]; - } - else if ((info.number - 1 - this.repeat) == 1) { - this.numberRepeat = this.repeat - 2; - tempNumber = this.Pos_Array[this.numberRepeat]; - } - else if ((info.number - 1 - this.repeat) == 0) { - this.numberRepeat = this.repeat - 2; - tempNumber = this.Pos_Array[this.numberRepeat]; - } - else if ((info.number - 1 - this.repeat) > 2) { - this.numberRepeat = parseInt(Math.random() * (info.number - this.repeat - 2) + "") + this.repeat + 2; - tempNumber = this.Pos_Array[this.numberRepeat]; - } - else { - this.numberRepeat = this.repeat - 2; - tempNumber = this.Pos_Array[this.numberRepeat]; - } - this.Pos_Array[this.repeat] = tempNumber; - } - } - if (info.moveNumber > 0) { - //0 1 2 3 4 5 6 7 8 9 - //可移动区分 - var pos_1 = cc.v2(0, 0); - if (info.number == 3) - this.moveArray = [0, 1, 0]; - else if (info.number == 4) - this.moveArray = [0, 0, 1, 0]; - else if (info.number == 5) - this.moveArray = [0, 0, 1, 0, 0]; - else if (info.number == 5) - this.moveArray = [0, 0, 1, 0, 0]; - else if (info.number == 6) - this.moveArray = [0, 0, 1, 1, 0, 0]; - else if (info.number == 7) - this.moveArray = [0, 0, 1, 1, 1, 0, 0]; - else if (info.number == 8) - this.moveArray = [0, 0, 0, 1, 1, 1, 1, 0]; - else if (info.number == 9) - this.moveArray = [0, 0, 1, 1, 1, 1, 1, 0, 0]; - else if (info.number == 10) - this.moveArray = [0, 0, 0, 1, 1, 1, 1, 1, 0, 0]; - var timeOut = 0; - //打乱可移动顺序 - // this.moveArray .sort(() => Math.random() - 0.5); - // debugger; - //设置重叠 - // this.repeat = -1; - // this.numberRepeat = -1; - //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7 - for (var k = 0; k < this.moveArray.length; k++) { - if (this.moveArray[k] == 1 && (k == this.repeat || k == this.numberRepeat)) { - for (var m = this.moveArray.length - 1; m >= 0; m--) { - if (m != k && this.moveArray[m] == 0 && m != this.repeat && m != this.numberRepeat) { - this.moveArray[m] = 1; - this.moveArray[k] = 0; - m = -1; - } - } - } - } - var _loop_4 = function (i) { - if (this_3.moveArray[i] == 1) { - timeOut += 1; - setTimeout(function () { - pos_1 = _this.getPos2(true, i); - _this.Pos_Array[i] = pos_1; - }, timeOut * 300); - } - }; - var this_3 = this; - for (var i = 0; i < this.Pos_Array.length; i++) { - _loop_4(i); - } - } - } - }; - //移动后数据 重新刷一遍赋值 - GameManager.prototype.updateArray = function () { - for (var i = 0; i < this.now_Array.length - 1; i++) { - this.now_Array[i].x = this.Pos_Array[i].x; - this.now_Array[i].y = this.Pos_Array[i].y; - } - }; - //太阳初始化后移动方法 - GameManager.prototype.moveAction = function () { - var _this = this; - this.updateArray(); - var moveArray = this.moveArray; - var info = GameData_1.default._instance.LEVEL_INFO[this.level - 1]; - //改变移动速度 - var speed = 7; - if (info.moveSpeed >= 2) { - speed = 7 - info.moveSpeed / 2; - } - if (info.moveNumber > 0) { - //0 1 2 3 4 5 6 7 8 9 - //可移动区分 - var pos = cc.v2(0, 0); - // this.repeat = -1; - // this.numberRepeat = -1; - //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7 - for (var k = 0; k < this.moveArray.length; k++) { - if (this.moveArray[k] == 1 && (k == this.repeat || k == this.numberRepeat)) { - for (var m = this.moveArray.length - 1; m >= 0; m--) { - if (m != k && this.moveArray[m] == 0 && m != this.repeat && m != this.numberRepeat) { - this.moveArray[m] = 1; - this.moveArray[k] = 0; - m = -1; - } - } - } - } - var lastNumber = 0; - //锁定最后一个可移动的 - for (var j = 0; j < moveArray.length; j++) { - if (moveArray[j] == 1) { - lastNumber = j; - } - } - var _loop_5 = function (i) { - if (moveArray[i] == 1) { - if (i != lastNumber) { //如果不是最后一个移动的 - var time = speed * this_4.calculateDistance3(this_4.ball_Array[i].x, this_4.ball_Array[i].y, this_4.Pos_Array[i].x, this_4.Pos_Array[i].y); - this_4.ball_Array[i].getComponent("Sun").move = true; - cc.tween(this_4.ball_Array[i]) - .to(time, { position: this_4.Pos_Array[i] }) - .call(function () { - _this.ball_Array[i].getComponent("Sun").move = false; - }) - .start(); - } - //如果是最后一个 - else { - var time = speed * this_4.calculateDistance3(this_4.ball_Array[i].x, this_4.ball_Array[i].y, this_4.Pos_Array[i].x, this_4.Pos_Array[i].y); - this_4.ball_Array[i].getComponent("Sun").move = true; - cc.tween(this_4.ball_Array[i]) - .to(time, { position: this_4.Pos_Array[i] }) - .call(function () { - _this.ball_Array[i].getComponent("Sun").move = false; - }) - .start(); - } - } - }; - var this_4 = this; - for (var i = 0; i < this.ball_Array.length; i++) { - _loop_5(i); - } - } - }; - GameManager.prototype.beginGame = function () { - this.begin = true; - this.startTime = this.getTime(); - this.timeStart = this.getTime(); - this.pause = false; - // this.node.getChildByName("showBtn").active = true; - }; - GameManager.prototype.getRandomArray = function (lastNumber) { - var num = parseInt(Math.random() * 8 - 4 + ""); - var jg = num + lastNumber; - if (num > 1 || num < -1) { - if (num == 0 || (jg < 0 || jg >= this.Pos_Array.length)) { - jg = this.getRandomArray(lastNumber); - } - } - else { - jg = this.getRandomArray(lastNumber); - } - return jg; - }; - //创建太阳所需数据 - GameManager.prototype.createSun = function () { - var _this = this; - var levelData = GameData_1.default._instance.LEVEL_INFO[this.level - 1]; - var tiemOut = 0; - var _loop_6 = function (l) { - tiemOut += 1; - setTimeout(function () { - if (_this.over == false) { - var pos = _this.getPos(false, l); - _this.Pos_Array.push(pos); - if (_this.Pos_Array.length == levelData.number) { - _this.createMove(); - _this.createPos(); - } - } - }, tiemOut * 100); - }; - for (var l = 0; l < levelData.number; l++) { - _loop_6(l); - } - // 0 0 0 0 0 0 0 0 0 0 0 - }; - GameManager.prototype.createPos = function () { - var data = { x: this.ball.x, y: this.ball.y, time: 0, timeCount: 0, color: 0, speed: 0, repeat: false }; - var levelData = GameData_1.default._instance.LEVEL_INFO[this.level - 1]; - //颜色区分 - var colorArray = [0, 1]; - for (var j = 0; j < levelData.number - 2; j++) { - var colorTemp = parseInt(Math.random() * 3 + ""); - if (levelData.number < 6 && colorTemp == 2) - colorTemp = 0; - colorArray.push(colorTemp); - colorArray.sort(function () { return Math.random() - 0.5; }); - } - colorArray.sort(function () { return Math.random() - 0.5; }); - if (levelData.number == 4) - colorArray = [0, 0, 0, 0]; - this.color_Array = colorArray; - for (var i = 0; i < levelData.number; i++) { - var timeCount = this.timeCount + (0.6 - this.calculateDistance(this.ball.x, this.ball.y, this.Pos_Array[i].x, this.Pos_Array[i].y)); - var time = this.calculateDistance(this.ball.x, this.ball.y, this.Pos_Array[i].x, this.Pos_Array[i].y) + timeCount; - data = { x: this.Pos_Array[i].x, y: this.Pos_Array[i].y, time: time, timeCount: timeCount, color: colorArray[i], speed: levelData.moveSpeed, repeat: false }; - if (this.repeat == i) { - data.repeat = true; - } - else if (this.numberRepeat == i) { - data.repeat = true; - } - this.now_Array.push(data); - } - this.runGame(); - }; - GameManager.prototype.getPos = function (type, num) { - var posX = Math.random() * 620 - 310; - var posY = Math.random() * (this.fitTop - this.fitBot) + this.fitBot; - var point = cc.v2(posX, posY); - if (this.Pos_Array.length > 0) { - for (var i = 0; i < this.Pos_Array.length; i++) { - var distance = false; - var pd = false; - if (i == num) - pd = true; - distance = this.getDistance(posX, posY, this.Pos_Array[i].x, this.Pos_Array[i].y, pd); - if (distance == false) { - i = 10000; - point = this.getPos(type, num); - } - if (distance == true && i == (this.Pos_Array.length - 1)) { - i = 10000; - } - } - } - return point; - }; - GameManager.prototype.getPos2 = function (type, num) { - var posX = Math.random() * 620 - 310; - var posY = Math.random() * (this.fitTop - this.fitBot) + this.fitBot; - var point = cc.v2(posX, posY); - if (this.Pos_Array.length > 0) { - for (var i = 0; i < this.Pos_Array.length; i++) { - var distance = false; - var pd = false; - if (i == num) - pd = true; - distance = this.getDistance2(posX, posY, this.Pos_Array[i].x, this.Pos_Array[i].y, pd); - if (distance == false) { - i = 10000; - point = this.getPos2(type, num); - } - if (distance == true && i == (this.Pos_Array.length - 1)) { - i = 10000; - } - } - } - return point; - }; - GameManager.prototype.getDistance = function (x1, y1, x2, y2, num) { - var jg = false; - var dx = x2 - x1; - var dy = y2 - y1; - var distance = Math.sqrt(dx * dx + dy * dy); - if (distance > 160) { - if (num == true) { - if (distance < GameData_1.default._instance.LEVEL_INFO[this.level - 1].maxMove) { - jg = true; - } - else - jg = false; - } - else { - if (distance < GameData_1.default._instance.LEVEL_INFO[this.level - 1].maxMove) { - jg = true; - } - else - jg = false; - } - } - return jg; - }; - GameManager.prototype.getDistance2 = function (x1, y1, x2, y2, num) { - var jg = false; - var dx = x2 - x1; - var dy = y2 - y1; - var distance = Math.sqrt(dx * dx + dy * dy); - if (distance > 160) { - if (num == true) { - if (distance < GameData_1.default._instance.LEVEL_INFO[this.level - 1].maxDistance) - jg = true; - else - jg = false; - } - else { - jg = true; - } - } - return jg; - }; - GameManager.prototype.createBall = function (number, color, speed, repeat) { - var ball = null; - if (color == 0) - ball = cc.instantiate(this.qiu1); - else if (color == 1) - ball = cc.instantiate(this.qiu2); - else if (color == 2) - ball = cc.instantiate(this.qiu3); - ball.parent = this.node.getChildByName("Sun"); - ball.zIndex = this.now_Array.length - number; - ball.setPosition(this.ball.x, this.ball.y); - ball.getComponent("Sun").init(number, color, speed, repeat); - this.ball_Array.push(ball); - }; - GameManager.prototype.destroyLine = function () { - for (var i = 0; i < this.node.getChildByName("Line").children.length; i++) { - if (this.node.getChildByName("Line").children[i]) { - this.node.getChildByName("Line").children[i].removeFromParent(); - this.node.getChildByName("Line").children[i] = null; - } - } - this.node.getChildByName("Line").removeAllChildren(); - }; - GameManager.prototype.createLine = function (start, end, time) { - var line = cc.instantiate(this.linePrefab); - line.parent = this.node.getChildByName("Line"); - line.setPosition(start.x, start.y); - var dx = end.x - start.x; - var dy = end.y - start.y; - var distance = Math.sqrt(dx * dx + dy * dy); - line.height = distance; - line.getComponent(cc.Sprite).fillRange = 0; - line.angle = -this.calculateAngle(start.x, start.y, end.x, end.y); - cc.tween(line.getComponent(cc.Sprite)) - .to(time, { fillRange: 1 }) - .start(); - }; - GameManager.prototype.calculateAngle = function (x1, y1, x2, y2) { - var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI - 90; - return -angle; - }; - GameManager.prototype.calculateDistance = function (x1, y1, x2, y2) { - var dx = x2 - x1; - var dy = y2 - y1; - var distance = Math.sqrt(dx * dx + dy * dy); - if (distance > 800) - distance = 800; - var time = distance / 800 * 0.6; - return time; - }; - GameManager.prototype.calculateDistance2 = function (x1, y1, x2, y2) { - var dx = x2 - x1; - var dy = y2 - y1; - var distance = Math.sqrt(dx * dx + dy * dy); - if (distance > 1200) - distance = 1200; - var time = distance / 1200 * 1; - return time; - }; - GameManager.prototype.calculateDistance3 = function (x1, y1, x2, y2) { - var dx = x2 - x1; - var dy = y2 - y1; - var distance = Math.sqrt(dx * dx + dy * dy); - if (distance > 1200) - distance = 1200; - var time = distance / 1200 * 1.5; - return time; - }; - //背景移动 - GameManager.prototype.bgMove = function (type) { - var _this = this; - var random = Math.random() * 300 + 300; - var posX = Math.random() * 600 - 300; - var y1 = this.bg1.y - random * type; - // let y2 = this.bg2.y - random*type; - var time1 = 0.7 * (random / 400); - cc.tween(this.ball) - .to(0.3, { scale: 1.3 }) - .to(time1, { x: posX }) - .start(); - cc.tween(this.bg1) - .delay(0.3) - .to(time1, { y: y1 }) - .start(); - // cc.tween(this.bg2) - // .delay(0.3) - // .to(time1,{y:y2}) - // .start(); - setTimeout(function () { - // if(this.over == false && GameData._instance.GM_INFO.custom == 0){ - // this.startGame(); - // } - if (_this.over == false) { - _this.startGame(); - } - }, time1 * 1500); - }; - //时间格式转换 - GameManager.prototype.getTimeMargin = function (second) { - var total = 0; - total = second; - var hour = 0; - hour = parseInt((total / 3600) + ""); //计算整数小时数 - var afterHour = total - hour * 60 * 60; //取得算出小时数后剩余的秒数 - var min = parseInt((afterHour / 60) + ""); //计算整数分 - var m = "" + min; - if (min < 10) - m = "0" + min; - var afterMin = total - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数 - var miao = afterMin + ""; - if (afterMin < 10) - miao = "0" + afterMin; - return m + ':' + miao; - }; - //如果是倒计时 调用此方法 - GameManager.prototype.updateCountDownTime = function () { - if (this.countTime > 0 && this.pause == false) { - this.countTime -= 1; - this.time.string = this.getTimeMargin(this.countTime); - if (this.countTime < 5) { - cc.tween(this.time.node) - .to(0.25, { scale: 1.5, color: cc.color(255, 0, 0) }) - .to(0.25, { scale: 1, color: cc.color(255, 255, 255) }) - .start(); - var over = this.node.getChildByName("Over"); - cc.tween(over) - .to(0.2, { opacity: 255 }) - .delay(0.1) - .to(0.2, { opacity: 0 }) - .start(); - } - if (this.countTime <= 0) { - this.begin = false; - this.over = true; - this.unschedule(this.updateCountDownTime); - this.setLoss(); - var time = 0; - console.log(GameData_1.default._instance.GM_INFO.mean_Time, this.clickCount); - if (this.clickCount > 0) - time = parseInt(GameData_1.default._instance.GM_INFO.mean_Time / this.clickCount + ""); - GameData_1.default._instance.GM_INFO.mean_Time = parseInt(time / 100 + ""); - GameData_1.default._instance.GM_INFO.mean_Time = GameData_1.default._instance.GM_INFO.mean_Time / 10; - console.log(GameData_1.default._instance.GM_INFO.mean_Time); - this.setRank(time); - } - } - }; - GameManager.prototype.setData = function () { - var data = GameData_1.default._instance.GAME_DATA; - var matchId = this.getMatchId(); - var postData = { - "matchId": matchId, - "data": data - }; - // console.log("上传数据:",postData) - serverAPI_1.default.uploadUserLogData(postData, function () { }); - }; - GameManager.prototype.getMatchId = function () { - var matchId = cc.sys.localStorage.getItem("matchId"); - if (matchId == "undifend" || matchId == null) { - matchId = this.setMatchId(); - } - else { - var char = parseInt(matchId[10]); - char += 1; - matchId = matchId.slice(0, 10) + char + ""; - GameData_1.default._instance.GM_INFO.matchId = matchId; - cc.sys.localStorage.setItem("matchId", matchId); - } - return matchId; - }; - GameManager.prototype.setMatchId = function () { - // 定义包含可用字符的字符集 - var characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - // 创建一个数组以保存随机字符 - var uuidArray = []; - // 循环10次 生成10位的UUID - for (var i = 0; i < 10; i++) { - // 生成随机索引,范围是字符集的长度 - var randomIndex = Math.floor(Math.random() * characters.length); - // 从字符集中获取随机字符 - var randomChar = characters.charAt(randomIndex); - // 将字符添加到数组中 - uuidArray.push(randomChar); - } - var data = uuidArray.join('') + 1 + ""; - cc.sys.localStorage.setItem("matchNumber", 1); - cc.sys.localStorage.setItem("matchId", data); - GameData_1.default._instance.GM_INFO.matchId = data; - return data; - }; - GameManager.prototype.setRank = function (time) { - var postData = { - "type": 1, - "reactionTime": time, - "totalSunCount": GameData_1.default._instance.GM_INFO.total, - "success": GameData_1.default._instance.GM_INFO.success - }; - console.log(postData); - serverAPI_1.default.rankData(1, function () { }, postData); - this.node.getChildByName("GameOver").active = true; - this.node.getChildByName("GameOver").opacity = 0; - cc.tween(this.node.getChildByName("GameOver")) - .to(0.4, { opacity: 255 }) - .delay(2) - .to(0.4, { opacity: 50 }) - .call(function () { - cc.director.loadScene("OverScene"); - }) - .start(); - }; - GameManager.prototype.outPut = function () { - var data = GameData_1.default._instance.CLICK_DATA; - GameData_1.default._instance.GAME_DATA = []; - // if(data.succeed == true) this.label1.string = "成功/失败:成功"; - // else if(data.succeed == false) this.label1.string = "成功/失败:失败"; - // this.label2.string = "太阳总数量:"+data.sun_total; - // this.label3.string = "太阳移动数量:"+data.sun_move; - // this.label4.string = "太阳移动速度:"+data.sun_speed; - // this.label5.string = "太阳重叠个数:"+data.sun_overlap; - // if(data.sun_color == "y") this.label6.string = "太阳颜色:yellow"; - // else if(data.sun_color == "yr") this.label6.string = "太阳颜色:yellow,red"; - // else if(data.sun_color == "yrb") this.label6.string = "太阳颜色:yellow,red,black"; - // this.label7.string = "完成时间:"+data.finish_time+"s"; - // this.label8.string = "难度等级:"+data.sun_difficulty+"级"; - // if(data.sun_color == "y") console.log("太阳颜色:","yellow" ); - // else if(data.sun_color == "yr") console.log("太阳颜色:","yellow,red" ); - // else if(data.sun_color == "yrb") console.log("太阳颜色:","yellow,red,black" ); - GameData_1.default._instance.GAME_DATA.push(GameData_1.default._instance.CLICK_DATA); - GameData_1.default._instance.CLICK_init(); - }; - GameManager.prototype.showNumber = function () { - if (this.show == false) - this.show = true; - else if (this.show == true) - this.show = false; - for (var i = 0; i < this.ball_Array.length; i++) { - this.ball_Array[i].getComponent("Sun").showNumber(this.show); - } - }; - GameManager.prototype.onEnable = function () { - Notification_1.Notification.on("clickSun", this.clickSun, this); - // Notification.on("HammerPlay", this.HammerPlay, this); - }; - GameManager.prototype.onDisable = function () { - // Notification.off("rightAnswers", this.rightAnswers); - Notification_1.Notification.off("clickSun", this.clickSun); - }; - GameManager.prototype.update = function (dt) { - }; - __decorate([ - property(cc.Node) - ], GameManager.prototype, "ball", void 0); - __decorate([ - property(cc.Prefab) - ], GameManager.prototype, "qiu1", void 0); - __decorate([ - property(cc.Prefab) - ], GameManager.prototype, "qiu2", void 0); - __decorate([ - property(cc.Prefab) - ], GameManager.prototype, "qiu3", void 0); - __decorate([ - property(cc.Prefab) - ], GameManager.prototype, "linePrefab", void 0); - __decorate([ - property(cc.Node) - ], GameManager.prototype, "hit", void 0); - __decorate([ - property(cc.Label) - ], GameManager.prototype, "levelLabel", void 0); - GameManager = __decorate([ - ccclass - ], GameManager); - return GameManager; -}(cc.Component)); -exports.default = GameManager; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUMxQyx1Q0FBa0M7QUFDbEMsK0NBQThDO0FBQzlDLGdEQUEwQztBQUUxQztJQUF5QywrQkFBWTtJQUFyRDtRQUFBLHFFQTBtQ0M7UUF2bUNHLFVBQUksR0FBWSxJQUFJLENBQUM7UUFFckIsVUFBSSxHQUFjLElBQUksQ0FBQztRQUV2QixVQUFJLEdBQWMsSUFBSSxDQUFDO1FBRXZCLFVBQUksR0FBYyxJQUFJLENBQUM7UUFFdkIsZ0JBQVUsR0FBYyxJQUFJLENBQUM7UUFFN0IsU0FBRyxHQUFZLElBQUksQ0FBQztRQUVwQixTQUFHLEdBQVksSUFBSSxDQUFDO1FBQ3BCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFDcEIsVUFBSSxHQUFhLElBQUksQ0FBQztRQUV0Qix3QkFBd0I7UUFDeEIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFVBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsVUFBSSxHQUFZLEtBQUssQ0FBQztRQXNCdEIsZ0JBQVUsR0FBYSxJQUFJLENBQUM7O0lBNmpDaEMsQ0FBQztJQXJqQ0csNEJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCwyQkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCx5QkFBRyxHQUFIO1FBQ0ksSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMs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QUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztxQkFDekMsSUFBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUM7b0JBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNoRCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNuRCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNuRCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztxQkFDckQsSUFBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUM7b0JBQUUsSUFBSSxDQUFDLFNBQVMsR0FBSSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN2RCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN6RCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztv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WUFDbEMsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0MsSUFBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQztnQkFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ3pELFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0IsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFNLE9BQUEsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBbkIsQ0FBbUIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFNLE9BQUEsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBbkIsQ0FBbUIsQ0FBQyxDQUFDO1FBQzNDLElBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFHOUIsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFDaEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9ILElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxD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QyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoRTtJQUNMLENBQUM7SUFHRCw4QkFBUSxHQUFSO1FBQ0ksMkJBQVksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakQsd0RBQXdEO0lBQzVELENBQUM7SUFFRCwrQkFBUyxHQUFUO1FBQ0ksdURBQXVEO1FBQ3ZELDJCQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUdELDRCQUFNLEdBQU4sVUFBUSxFQUFFO0lBRVYsQ0FBQztJQXRtQ0Q7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs2Q0FDRztJQUVyQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDOzZDQUNHO0lBRXZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7NkNBQ0c7SUFFdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzs2Q0FDRztJQUV2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO21EQUNTO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7NENBQ0U7SUFnQ3BCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7bURBQ1M7SUE3Q1gsV0FBVztRQUQvQixPQUFPO09BQ2EsV0FBVyxDQTBtQy9CO0lBQUQsa0JBQUM7Q0ExbUNELEFBMG1DQyxDQTFtQ3dDLEVBQUUsQ0FBQyxTQUFTLEdBMG1DcEQ7a0JBMW1Db0IsV0FBVyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5pbXBvcnQgR2FtZURhdGEgZnJvbSAnLi9HYW1lRGF0YSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4vTm90aWZpY2F0aW9uJztcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gJy4vY3J5cHRvL3NlcnZlckFQSSc7XHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGJhbGw6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHFpdTE6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgcWl1MjogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBxaXUzOiBjYy5QcmVmYWIgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIGxpbmVQcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGhpdDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgYmcxOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIGJnMjogY2MuTm9kZSA9IG51bGw7XHJcbiAgICB0aW1lOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcbiAgICBiZWdpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgZnVodW86IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIG92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGNvdW50VGltZTpudW1iZXI7XHJcbiAgICB0aW1lQ291bnQ6bnVtYmVyO1xyXG4gICAgZml0VG9wOm51bWJlcjtcclxuICAgIGZpdEJvdDpudW1iZXI7XHJcbiAgICBsZXZlbDpudW1iZXI7XHJcbiAgICBjbGlja05vdzpudW1iZXI7XHJcbiAgICBzdGFydFRpbWU6bnVtYmVyO1xyXG4gICAgb3ZlclRpbWU6bnVtYmVyO1xyXG4gICAgd2luVGltZTpudW1iZXI7XHJcbiAgICBjbGlja0NvdW50Om51bWJlcjtcclxuICAgIHRpbWVTdGFydDpudW1iZXI7XHJcbiAgICByb3V0ZV9BcnJheTogYW55W107XHJcbiAgICBub3dfQXJyYXk6IGFueVtdO1xyXG4gICAgYmFsbF9BcnJheTogYW55W107XHJcbiAgICBMaW5lX0FycmF5OiBhbnlbXTtcclxuICAgIFBvc19BcnJheTogYW55W107XHJcbiAgICB0aW1lX0FycmF5OiBhbnlbXTtcclxuICAgIGNvbG9yX0FycmF5OiBhbnlbXTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGV2ZWxMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG4gICAgbW92ZUFycmF5OiBudW1iZXJbXTtcclxuICAgIHJlcGVhdDogbnVtYmVyO1xyXG4gICAgbnVtYmVyUmVwZWF0OiBudW1iZXI7XHJcbiAgICByb3VuZDogbnVtYmVyO1xyXG4gICAgcGF1c2U6IGJvb2xlYW47XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIHRoaXMuZml0KCk7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcbiAgICBmaXQoKXtcclxuICAgICAgICB0aGlzLmZpdFRvcCA9IDQ1MDsgIC8vNjAwXHJcbiAgICAgICAgdGhpcy5maXRCb3QgPSAtNjAwOyAvLy03MDBcclxuICAgICAgICB2YXIgamcgPSB0aGlzLnNldEZpdCgpO1xyXG4gICAgICAgIGlmKCFqZyl7XHJcbiAgICAgICAgICAgIHRoaXMuZml0VG9wID0gNjAwO1xyXG4gICAgICAgICAgICB0aGlzLmZpdEJvdCA9IC03MDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFNldFNjcmVlblJlc29sdXRpb25GbGFnICgpIHtcclxuICAgICAgICBsZXQgc2l6ZSA9IGNjLndpblNpemU7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gc2l6ZS53aWR0aDtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgaWYgKChoZWlnaHQgLyB3aWR0aCkgPiAoMTYuMiAvIDkpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICAvL+WIpOaWreWFqOmdouWxj+mAgumFjVxyXG4gICAgc2V0Rml0ICgpIHtcclxuICAgICAgICBsZXQgZmxhZyA9IHRoaXMuZ2V0U2V0U2NyZWVuUmVzb2x1dGlvbkZsYWcoKTtcclxuICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmbGFnO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yid5aeL5YyW5pWw5o2uXHJcbiAgICBpbml0KCl7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZU92ZXJcIikuekluZGV4ID0gMTAwO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVPdmVyXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYmFsbC56SW5kZXggPSAxMDA7XHJcbiAgICAgICAgdGhpcy5iZzEgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiZzFcIik7XHJcbiAgICAgICAgdGhpcy5iZzIgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiZzJcIik7XHJcbiAgICAgICAgdGhpcy50aW1lID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInNob3dCdG5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5iZWdpbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZnVodW8gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucm91bmQgPSAwOyBcclxuICAgICAgICB0aGlzLmxldmVsID0gMjtcclxuICAgICAgICB0aGlzLmNvdW50VGltZSA9IDYwO1xyXG4gICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbSAhPSAwKXtcclxuICAgICAgICAgICAgdGhpcy5sZXZlbCA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbTtcclxuICAgICAgICAgICAgLy8gdGhpcy5sZXZlbExhYmVsLnN0cmluZyA9IHRoaXMubGV2ZWwgKyBcIlwiO1xyXG4gICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b20gKz0gMTtcclxuICAgICAgICAgICAgdGhpcy5jb3VudFRpbWUgPSAxMjAwMDAwMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5sZXZlbExhYmVsLnN0cmluZyA9IHRoaXMubGV2ZWwgKyBcIlwiO1xyXG4gXHJcbiAgICAgICAgdGhpcy50aW1lQ291bnQgPSAwLjE7XHJcbiAgICAgICAgdGhpcy5jbGlja05vdyA9IDA7XHJcbiAgICAgICAgdGhpcy5jbGlja0NvdW50ID0gMDtcclxuICAgICAgICB0aGlzLnRpbWVTdGFydCA9IDA7XHJcbiAgICAgICAgdGhpcy5yZXBlYXQgPSAtMTtcclxuICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IC0xO1xyXG4gICAgICAgIHRoaXMucm91dGVfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLm1vdmVBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMubm93X0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5iYWxsX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5Qb3NfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLnRpbWVfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbG9yX0FycmF5ID0gW107XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdBTUVfREFUQSA9IFtdO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnN1Y2Nlc3MgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5vdmVyVGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy53aW5UaW1lID0gMDtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy50b3RhbCA9IDA7XHJcblxyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnVwZGF0ZUNvdW50RG93blRpbWUsMSk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLnN0YXJ0R2FtZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tTY2VuZSgpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkxvYWRTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/kuIvkuIDlhbPvvIzmiJbogIXph43mlrDlvIDlp4vvvIzmiJbogIXov5Tlm57kuIrkuIDlhbPvvIzmoLnmja5sZXZlbOWGs+WumlxyXG4gICAgcmVTdGFydCh0eXBlKXtcclxuICAgICAgICAvLyBpZihHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b20gIT0gMCl7XHJcbiAgICAgICAgLy8gICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkxvYWRTY2VuZVwiKTtcclxuICAgICAgICAvLyAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJzaG93QnRuXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUxpbmUoKTtcclxuICAgICAgICB0aGlzLnRpbWVDb3VudCA9IDAuMTtcclxuICAgICAgICB0aGlzLmNsaWNrTm93ID0gMDtcclxuICAgICAgICB0aGlzLnRpbWVTdGFydCA9IDA7XHJcbiAgICAgICAgdGhpcy5yZXBlYXQgPSAtMTtcclxuICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IC0xO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuYmVnaW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJvdXRlX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5ub3dfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmJhbGxfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLlBvc19BcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMubW92ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy50aW1lX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5jb2xvcl9BcnJheSA9IFtdO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmKHR5cGUgPT0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMuYmdNb3ZlKDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHR5cGUgPT0gMSl7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodHlwZSA9PSAyKXtcclxuICAgICAgICAgICAgdGhpcy5iZ01vdmUoLTEpO1xyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGJlZ2luX0d1aWRlKCl7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v6I635Y+W5pe26Ze05oizXHJcbiAgICBnZXRUaW1lKCl7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH1cclxuXHJcbiAgICAvL+iOt+iDnFxyXG4gICAgcGFzc0xldmVsKCl7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95TGluZSgpO1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciA9PSBmYWxzZSAmJiB0aGlzLmNvdW50VGltZSA+PSAwKXtcclxuICAgICAgICAgICAgbGV0IHRpbWVBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgdGltZUNvdW50ID0gMDtcclxuICAgICAgICAgICAgbGV0IGJhbGwgPSB0aGlzLmJhbGxfQXJyYXlbMF07XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0xOyBpPCB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlMih0aGlzLmJhbGxfQXJyYXlbaV0ueCx0aGlzLmJhbGxfQXJyYXlbaV0ueSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlbaS0xXS54LHRoaXMuYmFsbF9BcnJheVtpLTFdLnkpO1xyXG4gICAgICAgICAgICAgICAgdGltZUFycmF5LnB1c2godGltZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZm9yKGxldCBrPTE7IGs8IHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7IGsrKyl7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy50d2VlbihiYWxsKVxyXG4gICAgICAgICAgICAgICAgICAgIC50byh0aW1lQXJyYXlbay0xXSx7eDp0aGlzLmJhbGxfQXJyYXlba10ueCx5OnRoaXMuYmFsbF9BcnJheVtrXS55fSlcclxuICAgICAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2tdLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihrID09IHRoaXMuYmFsbF9BcnJheS5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwucG9zaXRpb24gPSBjYy52MyhiYWxsLngsYmFsbC55LDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbGwuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhclN1bigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVTdGFydCgwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDIwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfSwgdGltZUNvdW50KjEwMDApO1xyXG4gICAgICAgICAgICAgICAgdGltZUNvdW50ICs9ICh0aW1lQXJyYXlbay0xXSswLjEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC8v5aSx6LSlXHJcbiAgICBsb3NlTGV2ZWwodHlwZSl7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95TGluZSgpO1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciA9PSBmYWxzZSAmJiB0aGlzLmNvdW50VGltZSA+PSAwKXtcclxuICAgICAgICAgICAgbGV0IGJhbGwgPSB0aGlzLmJhbGxfQXJyYXlbMF07XHJcbiAgICAgICAgICAgIGZvcihsZXQgaz0xOyBrPCB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBrKyspe1xyXG4gICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5iYWxsX0FycmF5W2tdKVxyXG4gICAgICAgICAgICAgICAgLnRvKDIse3g6YmFsbC54LHk6YmFsbC55fSlcclxuICAgICAgICAgICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBpZihrID09IHRoaXMuYmFsbF9BcnJheS5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbC5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwucG9zaXRpb24gPSBjYy52MyhiYWxsLngsYmFsbC55LDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyU3VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVTdGFydCh0eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJTdW4oKXtcclxuICAgICAgICBmb3IobGV0IGs9MDsgazwgdGhpcy5iYWxsX0FycmF5Lmxlbmd0aDsgaysrKXtcclxuICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2tdLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2tdID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/ngrnlh7vlpKrpmLPmiafooYzmlrnms5VcclxuICAgIGNsaWNrU3VuKGRhdGEpe1xyXG4gICAgICAgIGlmKHRoaXMuYmVnaW4gPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpY2tDb3VudCArPSAxO1xyXG4gICAgICAgICAgICBsZXQgY2xpY2tUaW1lID0gdGhpcy5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIHRoaXMudGltZV9BcnJheS5wdXNoKChjbGlja1RpbWUgLSB0aGlzLnRpbWVTdGFydCkpXHJcbiAgICAgICAgICAgIHRoaXMudGltZVN0YXJ0ID0gdGhpcy5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIGlmKGRhdGEgPT0gdGhpcy5jbGlja05vdyl7XHJcbiAgICAgICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuQXVkaW9NYW5hZ2VyLnBsYXlBdWRpb0J1dHRvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jbGlja05vdyA+IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTGluZShjYy52Mih0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXS54LHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93LTFdLnkpLFxyXG4gICAgICAgICAgICAgICAgICAgIGNjLnYyKHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93XS54LHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93XS55KSxcclxuICAgICAgICAgICAgICAgICAgICAwLjIpOyAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jbGlja05vdyArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy8gR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwgKz0gMTtcclxuICAgICAgXHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W3RoaXMuY2xpY2tOb3ctMV0uZ2V0Q2hpbGRCeU5hbWUoXCJndWFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0sIDIwMCk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmNsaWNrTm93ID09IHRoaXMubm93X0FycmF5Lmxlbmd0aCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwgKz0gdGhpcy5jbGlja05vdztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vdmVyVGltZSA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSArPSAodGhpcy5vdmVyVGltZSAtIHRoaXMuc3RhcnRUaW1lKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBmaW5pc2hfdGltZSA9IHBhcnNlSW50KCh0aGlzLm92ZXJUaW1lIC0gdGhpcy5zdGFydFRpbWUpLzEwMCtcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IDA7IHRoaXMub3ZlclRpbWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb2xvciA9IFwieVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubGV2ZWwgPCA0ICYmIHRoaXMubGV2ZWwgPiAxKWNvbG9yID0gXCJ5clwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5sZXZlbCA+PSA0KSBjb2xvciA9IFwieXJiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHdpbiA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldpblwiKTtcclxuICAgICAgICAgICAgICAgICAgICB3aW4uYWN0aXZlID0gdHJ1ZTsgd2luLnNldFNjYWxlKDApO1xyXG4gICAgICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5BdWRpb01hbmFnZXIucGxheVdpbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91bmQgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3VuQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBtPTAgOyBtPHRoaXMubW92ZUFycmF5Lmxlbmd0aDttKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobSA9PSB0aGlzLnJlcGVhdCB8fCBtID09IHRoaXMubnVtYmVyUmVwZWF0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVttXSA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5BcnJheS5wdXNoKHRoaXMubW92ZUFycmF5W21dKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IG09MCA7IG08dGhpcy5iYWxsX0FycmF5Lmxlbmd0aDttKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobSA9PSB0aGlzLnJlcGVhdCB8fCBtID09IHRoaXMubnVtYmVyUmVwZWF0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5BcnJheS5wdXNoKDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bkFycmF5LnB1c2goMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEgPSBcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZToxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzczp0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQ6dGhpcy5yb3VuZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsU3VuQ291bnQ6dGhpcy5ub3dfQXJyYXkubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZWRTdW5Db3VudDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVOdW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5TcGVlZDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVTcGVlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXBTdW5Db3VudDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLnJlcGVhdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yTGlzdDp0aGlzLmNvbG9yX0FycmF5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246ZmluaXNoX3RpbWUvMTAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmaWN1bHR5TGV2ZWw6dGhpcy5sZXZlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bkxpc3Q6c3VuQXJyYXksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwVGltZUxpc3Q6dGhpcy50aW1lX0FycmF5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyOnRoaXMuY291bnRUaW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3V0UHV0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4od2luKVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMDEse3NjYWxlOjIuNX0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMzUse3NjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjQpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95TGluZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2UgJiYgdGhpcy5jb3VudFRpbWUgPj0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmxldmVsID49IDE1KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5zdWNjZXNzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxldmVsICs9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5sZXZlbExhYmVsLnN0cmluZyA9IHRoaXMubGV2ZWwgKyBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnVodW8gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZXZlbCArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMubGV2ZWxMYWJlbC5zdHJpbmcgPSB0aGlzLmxldmVsICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZ1aHVvID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvc3MoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyB0aGlzLmhpdEFjdGlvbihkYXRhKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgc2V0TG9zcygpe1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5BdWRpb01hbmFnZXIucGxheVdhcm5pbmcoKTtcclxuICAgICAgICB0aGlzLmJlZ2luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vdmVyVGltZSA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSArPSAodGhpcy5vdmVyVGltZSAtIHRoaXMuc3RhcnRUaW1lKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUpO1xyXG4gICAgICAgIGxldCBmaW5pc2hfdGltZSA9IHBhcnNlSW50KCh0aGlzLm92ZXJUaW1lIC0gdGhpcy5zdGFydFRpbWUpLzEwMCtcIlwiKTtcclxuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IDA7IHRoaXMub3ZlclRpbWUgPSAwO1xyXG4gICAgICAgIGxldCBjb2xvciA9IFwieVwiO1xyXG4gICAgICAgIGlmKHRoaXMubGV2ZWwgPCA0ICYmIHRoaXMubGV2ZWwgPiAxKWNvbG9yID0gXCJ5clwiO1xyXG4gICAgICAgIGVsc2UgaWYodGhpcy5sZXZlbCA+PSA0KSBjb2xvciA9IFwieXJiXCI7XHJcbiAgICAgICAgdGhpcy5yb3VuZCArPSAxO1xyXG4gICAgICAgIGxldCBzdW5BcnJheSA9IFtdO1xyXG4gICAgICAgIGlmKHRoaXMubW92ZUFycmF5Lmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IG09MCA7IG08dGhpcy5tb3ZlQXJyYXkubGVuZ3RoO20rKyl7XHJcbiAgICAgICAgICAgICAgICBpZihtID09IHRoaXMucmVwZWF0IHx8IG0gPT0gdGhpcy5udW1iZXJSZXBlYXQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUFycmF5W21dID0gMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHN1bkFycmF5LnB1c2godGhpcy5tb3ZlQXJyYXlbbV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGZvcihsZXQgbT0wIDsgbTx0aGlzLmJhbGxfQXJyYXkubGVuZ3RoO20rKyl7XHJcbiAgICAgICAgICAgICAgICBpZihtID09IHRoaXMucmVwZWF0IHx8IG0gPT0gdGhpcy5udW1iZXJSZXBlYXQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1bkFycmF5LnB1c2goMik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgc3VuQXJyYXkucHVzaCgwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuIFxyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5DTElDS19EQVRBID0gXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOjEsXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6ZmFsc2UsXHJcbiAgICAgICAgICAgIHJvdW5kOnRoaXMucm91bmQsXHJcbiAgICAgICAgICAgIHRvdGFsU3VuQ291bnQ6dGhpcy5ub3dfQXJyYXkubGVuZ3RoLFxyXG4gICAgICAgICAgICBtb3ZlZFN1bkNvdW50OkdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV0ubW92ZU51bWJlcixcclxuICAgICAgICAgICAgc3VuU3BlZWQ6R2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk9bdGhpcy5sZXZlbC0xXS5tb3ZlU3BlZWQsXHJcbiAgICAgICAgICAgIG92ZXJsYXBTdW5Db3VudDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLnJlcGVhdCxcclxuICAgICAgICAgICAgY29sb3JMaXN0OnRoaXMuY29sb3JfQXJyYXksXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOmZpbmlzaF90aW1lLzEwLFxyXG4gICAgICAgICAgICBkaWZmaWN1bHR5TGV2ZWw6dGhpcy5sZXZlbCxcclxuICAgICAgICAgICAgc3VuTGlzdDpzdW5BcnJheSxcclxuICAgICAgICAgICAgc3RlcFRpbWVMaXN0OnRoaXMudGltZV9BcnJheSxcclxuICAgICAgICAgICAgcmVtYWluZGVyOnRoaXMuY291bnRUaW1lXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub3V0UHV0KCk7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgICAgaWYodGhpcy5mdWh1byA9PSB0cnVlKXtcclxuICAgICAgICAgICAgdGhpcy5mdWh1byA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvc2VMZXZlbCgxKTtcclxuICAgICAgICB9IFxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubGV2ZWwgPiAyKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubGV2ZWwgLT0gMTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubGV2ZWxMYWJlbC5zdHJpbmcgPSB0aGlzLmxldmVsICsgXCJcIjtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnVodW8gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5mdWh1byA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb3NlTGV2ZWwoMik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9zZUxldmVsKDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBvdmVyID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiT3ZlclwiKTtcclxuICAgICAgICBjYy50d2VlbihvdmVyKVxyXG4gICAgICAgIC50bygwLjI1LHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgLmRlbGF5KDAuMSlcclxuICAgICAgICAudG8oMC4yLHtvcGFjaXR5OjB9KVxyXG4gICAgICAgIC5kZWxheSgwLjEpXHJcbiAgICAgICAgLnRvKDAuMTUse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgIC50bygwLjEse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgaGl0QWN0aW9uKGRhdGEpe1xyXG4gICAgICAgIHRoaXMuaGl0LmFjdGl2ZSA9IHRydWU7IHRoaXMuaGl0Lm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIHRoaXMuaGl0LnNldFBvc2l0aW9uXHJcbiAgICAgICAgdGhpcy5oaXQuc2V0UG9zaXRpb24odGhpcy5iYWxsX0FycmF5W2RhdGFdLngrMzUsdGhpcy5iYWxsX0FycmF5W2RhdGFdLnkrMzUpO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMuaGl0KVxyXG4gICAgICAgIC50bygwLHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgLnRvKDAuMix7cG9zaXRpb246Y2MudjModGhpcy5oaXQueC0zNSx0aGlzLmhpdC55LTM1LDApfSlcclxuICAgICAgICAuZGVsYXkoMC4yKVxyXG4gICAgICAgIC50bygwLjEse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuaGl0LmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/lvIDlp4vmuLjmiI9cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciA9PSBmYWxzZSAmJiB0aGlzLmNvdW50VGltZSA+IDApe1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVTdW4oKTtcclxuICAgICAgICAgICAgdGhpcy5iZWdpbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy50d2Vlbih0aGlzLmJhbGwpXHJcbiAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6MjU1LHNjYWxlOjEuM30pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnJ1bkdhbWUoKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBydW5HYW1lKCl7XHJcbiAgICAgICAgbGV0IHRpbWUgPSAtNjUwO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMubm93X0FycmF5Lmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgdGltZSA9IHRoaXMubm93X0FycmF5W2ldLnRpbWUqMTAwMCArIHRpbWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5vdmVyID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IHRoaXMubm93X0FycmF5W2ldLnRpbWVDb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBpZih0ZW1wID4gMC41KSB0ZW1wID0gMC41O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGkgIT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuYmFsbCAmJiB0aGlzLm5vd19BcnJheVtpXSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmUoY2MudjIodGhpcy5iYWxsLngsdGhpcy5iYWxsLnkpLGNjLnYyKHRoaXMubm93X0FycmF5W2ldLngsdGhpcy5ub3dfQXJyYXlbaV0ueSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vd19BcnJheVtpXS50aW1lLXRlbXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbClcclxuICAgICAgICAgICAgICAgICAgICAudG8odGhpcy5ub3dfQXJyYXlbaV0udGltZS10ZW1wLHt4OnRoaXMubm93X0FycmF5W2ldLngseTp0aGlzLm5vd19BcnJheVtpXS55fSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC4xLHtzY2FsZToxfSlcclxuICAgICAgICAgICAgICAgICAgICAuY2FsbCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUJhbGwoaSx0aGlzLm5vd19BcnJheVtpXS5jb2xvcix0aGlzLm5vd19BcnJheVtpXS5zcGVlZCx0aGlzLm5vd19BcnJheVtpXS5yZXBlYXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihpID09IHRoaXMubm93X0FycmF5Lmxlbmd0aCAtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3lMaW5lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iZWdpbkdhbWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVOdW1iZXI8MSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxNTApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlTW92ZSgpe1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgIGxldCBpbmZvID0gR2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk9bdGhpcy5sZXZlbC0xXTtcclxuICAgICAgICAgICAgLy/mlLnlj5jnp7vliqjpgJ/luqZcclxuICAgICAgICAgICAgdmFyIHNwZWVkID0gNztcclxuICAgICAgICAgICAgaWYoaW5mby5tb3ZlU3BlZWQgPj0gMil7XHJcbiAgICAgICAgICAgICAgICBzcGVlZCA9IDcgLSBpbmZvLm1vdmVTcGVlZC8yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGluZm8ucmVwZWF0ID09IDEpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXBlYXQgID0gcGFyc2VJbnQoKE1hdGgucmFuZG9tKCkqKGluZm8ubnVtYmVyLTEpKzEpICsgXCJcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGVtcE51bWJlciA9IDA7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJlcGVhdCA9IDQ7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLnJlcGVhdCAgPiA0KXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IHBhcnNlSW50KE1hdGgucmFuZG9tKCkqNCArIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMucmVwZWF0ICA9PSAoaW5mby5udW1iZXItMSkpICAvL+WmguaenOaYr+acgOWQjuS4gOS4qiDkuI3og73ot5/nrKzkuIDkuKrph43lj6BcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IHRoaXMucmVwZWF0ICAtIHBhcnNlSW50KCAoTWF0aC5yYW5kb20oKSozICsgMikrIFwiXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGVtcE51bWJlciA9ICB0aGlzLlBvc19BcnJheVt0aGlzLm51bWJlclJlcGVhdF07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5yZXBlYXQgXSA9IHRlbXBOdW1iZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNleyAvLyAwIDEgMiAzIDQgNSBcclxuICAgICAgICAgICAgICAgICAgICAvLyA2IC0gMyAtIDEgID0gMiA0ICAwMSA0XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5yZXBlYXQgID09IDApIHRoaXMucmVwZWF0ICA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoKGluZm8ubnVtYmVyLTEtdGhpcy5yZXBlYXQgKSA9PSAyKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSBpbmZvLm51bWJlciAtIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBOdW1iZXIgPSAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5udW1iZXJSZXBlYXRdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKChpbmZvLm51bWJlci0xLXRoaXMucmVwZWF0ICkgPT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyUmVwZWF0ID0gdGhpcy5yZXBlYXQgLSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTnVtYmVyID0gIHRoaXMuUG9zX0FycmF5W3RoaXMubnVtYmVyUmVwZWF0XTtcclxuICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoKGluZm8ubnVtYmVyLTEtdGhpcy5yZXBlYXQgKSA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSB0aGlzLnJlcGVhdCAtIDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBOdW1iZXIgPSAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5udW1iZXJSZXBlYXRdO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigoaW5mby5udW1iZXItMS10aGlzLnJlcGVhdCApID4gMil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyUmVwZWF0ID0gcGFyc2VJbnQoTWF0aC5yYW5kb20oKSooaW5mby5udW1iZXItdGhpcy5yZXBlYXQgLTIpICsgXCJcIikgKyB0aGlzLnJlcGVhdCAgKyAyIDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE51bWJlciA9ICB0aGlzLlBvc19BcnJheVt0aGlzLm51bWJlclJlcGVhdF07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyUmVwZWF0ID0gdGhpcy5yZXBlYXQgLSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTnVtYmVyID0gIHRoaXMuUG9zX0FycmF5W3RoaXMubnVtYmVyUmVwZWF0XTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5yZXBlYXRdID0gdGVtcE51bWJlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihpbmZvLm1vdmVOdW1iZXIgPiAwKXtcclxuICAgICAgICAgICAgICAgIC8vMCAxIDIgMyA0IDUgNiA3IDggOVxyXG4gICAgICAgICAgICAgICAgLy/lj6/np7vliqjljLrliIZcclxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgaWYoaW5mby5udW1iZXIgPT0gMykgdGhpcy5tb3ZlQXJyYXkgPSBbMCwxLDBdO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihpbmZvLm51bWJlciA9PSA0KSB0aGlzLm1vdmVBcnJheSA9IFswLDAsMSwwXTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoaW5mby5udW1iZXIgPT0gNSkgdGhpcy5tb3ZlQXJyYXkgID0gWzAsMCwxLDAsMF07XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKGluZm8ubnVtYmVyID09IDUpIHRoaXMubW92ZUFycmF5ICA9IFswLDAsMSwwLDBdO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihpbmZvLm51bWJlciA9PSA2KSB0aGlzLm1vdmVBcnJheSAgPSBbMCwwLDEsMSwwLDBdO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihpbmZvLm51bWJlciA9PSA3KSB0aGlzLm1vdmVBcnJheSAgPSBbMCwwLDEsMSwxLDAsMF07XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKGluZm8ubnVtYmVyID09IDgpIHRoaXMubW92ZUFycmF5ICA9IFswLDAsMCwxLDEsMSwxLDBdO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihpbmZvLm51bWJlciA9PSA5KSB0aGlzLm1vdmVBcnJheSAgPSBbMCwwLDEsMSwxLDEsMSwwLDBdO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihpbmZvLm51bWJlciA9PSAxMCkgdGhpcy5tb3ZlQXJyYXkgID0gWzAsMCwwLDEsMSwxLDEsMSwwLDBdO1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbWVPdXQgPSAwO1xyXG4gICAgICAgICAgICAgICAgLy/miZPkubHlj6/np7vliqjpobrluo9cclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubW92ZUFycmF5IC5zb3J0KCgpID0+IE1hdGgucmFuZG9tKCkgLSAwLjUpO1xyXG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v6K6+572u6YeN5Y+gXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJlcGVhdCA9IC0xO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5udW1iZXJSZXBlYXQgPSAtMTtcclxuXHJcbiAgICAgICAgICAgICAgICAvL+WwhumHjeWPoOeahOiuvue9ruS4uuS4jeWPr+enu+WKqCAgMSAxIDEgMSAwIDAgMSAwIDAgMCAgIC8gMiA3XHJcbiAgICAgICAgICAgIGZvcihsZXQgayA9MDsgazx0aGlzLm1vdmVBcnJheS5sZW5ndGg7aysrKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZUFycmF5W2tdPT0xICYmIChrID09IHRoaXMucmVwZWF0IHx8IGsgPT0gdGhpcy5udW1iZXJSZXBlYXQpKXtcclxuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IG0gPSB0aGlzLm1vdmVBcnJheS5sZW5ndGgtMTsgbSA+PSAwOyBtLS0pe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihtICE9IGsgJiYgdGhpcy5tb3ZlQXJyYXlbbV0gPT0gMCAmJiBtIT0gdGhpcy5yZXBlYXQgJiYgbSE9IHRoaXMubnVtYmVyUmVwZWF0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUFycmF5W21dID0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUFycmF5W2tdID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gID0gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZm9yKGxldCBpID0wOyBpPHRoaXMuUG9zX0FycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlQXJyYXkgW2ldID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpbWVPdXQgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gdGhpcy5nZXRQb3MyKHRydWUsaSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUG9zX0FycmF5W2ldID0gcG9zO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIHRpbWVPdXQqMzAwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC8v56e75Yqo5ZCO5pWw5o2uIOmHjeaWsOWIt+S4gOmBjei1i+WAvFxyXG4gICAgdXBkYXRlQXJyYXkoKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLm5vd19BcnJheS5sZW5ndGgtMTtpKyspe1xyXG4gICAgICAgICAgICB0aGlzLm5vd19BcnJheVtpXS54ID0gdGhpcy5Qb3NfQXJyYXlbaV0ueDtcclxuICAgICAgICAgICAgdGhpcy5ub3dfQXJyYXlbaV0ueSA9IHRoaXMuUG9zX0FycmF5W2ldLnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/lpKrpmLPliJ3lp4vljJblkI7np7vliqjmlrnms5VcclxuICAgICBtb3ZlQWN0aW9uKCl7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBcnJheSgpO1xyXG4gICAgICAgIGxldCBtb3ZlQXJyYXkgPSB0aGlzLm1vdmVBcnJheTtcclxuICAgICAgICBsZXQgaW5mbyA9IEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV07XHJcbiAgICAgICAgLy/mlLnlj5jnp7vliqjpgJ/luqZcclxuICAgICAgICB2YXIgc3BlZWQgPSA3O1xyXG4gICAgICAgIGlmKGluZm8ubW92ZVNwZWVkID49IDIpe1xyXG4gICAgICAgICAgICBzcGVlZCA9IDcgLSBpbmZvLm1vdmVTcGVlZC8yO1xyXG4gICAgICAgIH0gIFxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBpZihpbmZvLm1vdmVOdW1iZXIgPiAwKXtcclxuICAgICAgICAgICAgLy8wIDEgMiAzIDQgNSA2IDcgOCA5XHJcbiAgICAgICAgICAgIC8v5Y+v56e75Yqo5Yy65YiGXHJcbiAgICAgICAgICAgIGxldCBwb3MgPSBjYy52MigwLDApO1xyXG5cclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMucmVwZWF0ID0gLTE7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubnVtYmVyUmVwZWF0ID0gLTE7XHJcblxyXG4gICAgICAgICAgICAgICAgLy/lsIbph43lj6DnmoTorr7nva7kuLrkuI3lj6/np7vliqggIDEgMSAxIDEgMCAwIDEgMCAwIDAgICAvIDIgN1xyXG4gICAgICAgICAgICBmb3IobGV0IGsgPTA7IGs8dGhpcy5tb3ZlQXJyYXkubGVuZ3RoO2srKyl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVBcnJheVtrXT09MSAmJiAoayA9PSB0aGlzLnJlcGVhdCB8fCBrID09IHRoaXMubnVtYmVyUmVwZWF0KSl7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBtID0gdGhpcy5tb3ZlQXJyYXkubGVuZ3RoLTE7IG0gPj0gMDsgbS0tKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYobSAhPSBrICYmIHRoaXMubW92ZUFycmF5W21dID09IDAgJiYgbSE9IHRoaXMucmVwZWF0ICYmIG0hPSB0aGlzLm51bWJlclJlcGVhdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVttXSA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVtrXSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICA9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgbGFzdE51bWJlciA9IDA7XHJcbiAgICAgICAgICAgIC8v6ZSB5a6a5pyA5ZCO5LiA5Liq5Y+v56e75Yqo55qEXHJcbiAgICAgICAgICAgIGZvcihsZXQgaiA9MDsgajxtb3ZlQXJyYXkubGVuZ3RoO2orKyl7XHJcbiAgICAgICAgICAgICAgICBpZihtb3ZlQXJyYXlbal09PTEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGxhc3ROdW1iZXIgPSBqO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBmb3IobGV0IGkgPTA7IGk8dGhpcy5iYWxsX0FycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYobW92ZUFycmF5W2ldID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGkgIT0gbGFzdE51bWJlcil7ICAgIC8v5aaC5p6c5LiN5piv5pyA5ZCO5LiA5Liq56e75Yqo55qEXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gc3BlZWQqdGhpcy5jYWxjdWxhdGVEaXN0YW5jZTModGhpcy5iYWxsX0FycmF5W2ldLngsdGhpcy5iYWxsX0FycmF5W2ldLnksdGhpcy5Qb3NfQXJyYXlbaV0ueCx0aGlzLlBvc19BcnJheVtpXS55KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2ldLmdldENvbXBvbmVudChcIlN1blwiKS5tb3ZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5iYWxsX0FycmF5W2ldKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAudG8odGltZSx7cG9zaXRpb246dGhpcy5Qb3NfQXJyYXlbaV19KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJTdW5cIikubW92ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy/lpoLmnpzmmK/mnIDlkI7kuIDkuKpcclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IHNwZWVkKnRoaXMuY2FsY3VsYXRlRGlzdGFuY2UzKHRoaXMuYmFsbF9BcnJheVtpXS54LHRoaXMuYmFsbF9BcnJheVtpXS55LHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJTdW5cIikubW92ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbF9BcnJheVtpXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvKHRpbWUse3Bvc2l0aW9uOnRoaXMuUG9zX0FycmF5W2ldfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2ldLmdldENvbXBvbmVudChcIlN1blwiKS5tb3ZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYmVnaW5HYW1lKCl7XHJcbiAgICAgICAgdGhpcy5iZWdpbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSB0aGlzLmdldFRpbWUoKTtcclxuICAgICAgICB0aGlzLnRpbWVTdGFydCA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJzaG93QnRuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmFuZG9tQXJyYXkobGFzdE51bWJlcil7XHJcbiAgICAgICAgbGV0IG51bSA9ICBwYXJzZUludChNYXRoLnJhbmRvbSgpKjggLSA0ICsgXCJcIik7XHJcbiAgICAgICAgbGV0IGpnID0gbnVtICsgbGFzdE51bWJlcjtcclxuICAgICAgICBpZihudW0gPiAxIHx8IG51bSA8LTEpe1xyXG4gICAgICAgICAgICBpZiggbnVtID09IDAgfHwgKCBqZzwwIHx8IGpnID49IHRoaXMuUG9zX0FycmF5Lmxlbmd0aCkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSB0aGlzLmdldFJhbmRvbUFycmF5KGxhc3ROdW1iZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGpnID0gdGhpcy5nZXRSYW5kb21BcnJheShsYXN0TnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICBcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rlpKrpmLPmiYDpnIDmlbDmja5cclxuICAgIGNyZWF0ZVN1bigpe1xyXG4gICAgICAgIGxldCBsZXZlbERhdGEgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdO1xyXG4gICAgICAgIGxldCB0aWVtT3V0ID0gMDtcclxuICAgICAgICBmb3IobGV0IGw9MDsgbDxsZXZlbERhdGEubnVtYmVyO2wrKyl7XHJcbiAgICAgICAgICAgIHRpZW1PdXQgKz0gMTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3MgPSB0aGlzLmdldFBvcyhmYWxzZSxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlBvc19BcnJheS5wdXNoKHBvcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5Qb3NfQXJyYXkubGVuZ3RoID09IGxldmVsRGF0YS5udW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQb3MoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9LCB0aWVtT3V0KjEwMCk7XHJcbiBcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gMCAwIDAgMCAwIDAgICAgIDAgICAgMCAwIDAgMFxyXG5cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVQb3MoKXtcclxuICAgICAgICBsZXQgZGF0YSA9IHt4OnRoaXMuYmFsbC54LHk6dGhpcy5iYWxsLnksdGltZTowLHRpbWVDb3VudDowLGNvbG9yOjAsc3BlZWQ6MCxyZXBlYXQ6ZmFsc2V9O1xyXG4gICAgICAgIGxldCBsZXZlbERhdGEgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdO1xyXG4gICAgICAgIC8v6aKc6Imy5Yy65YiGXHJcbiAgICAgICAgbGV0IGNvbG9yQXJyYXkgPSBbMCwxXTtcclxuICAgICAgICBmb3IobGV0IGo9MDsgajxsZXZlbERhdGEubnVtYmVyLTI7aisrKXtcclxuICAgICAgICAgICAgbGV0IGNvbG9yVGVtcCA9IHBhcnNlSW50KE1hdGgucmFuZG9tKCkqMytcIlwiKTtcclxuICAgICAgICAgICAgaWYobGV2ZWxEYXRhLm51bWJlciA8IDYgJiYgY29sb3JUZW1wID09IDIpIGNvbG9yVGVtcCA9IDA7XHJcbiAgICAgICAgICAgIGNvbG9yQXJyYXkucHVzaChjb2xvclRlbXApO1xyXG4gICAgICAgICAgICBjb2xvckFycmF5LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbG9yQXJyYXkuc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KTtcclxuICAgICAgICBpZihsZXZlbERhdGEubnVtYmVyID09IDQpIGNvbG9yQXJyYXkgPSBbMCwwLDAsMF07XHJcbiAgICAgICAgdGhpcy5jb2xvcl9BcnJheSA9IGNvbG9yQXJyYXk7XHJcblxyXG5cclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxsZXZlbERhdGEubnVtYmVyO2krKyl7XHJcbiAgICAgICAgICAgIGxldCB0aW1lQ291bnQgPSB0aGlzLnRpbWVDb3VudCArICgwLjYtdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLmJhbGwueCx0aGlzLmJhbGwueSx0aGlzLlBvc19BcnJheVtpXS54LHRoaXMuUG9zX0FycmF5W2ldLnkpKTtcclxuICAgICAgICAgICAgbGV0IHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55LHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSkrdGltZUNvdW50O1xyXG4gICAgICAgICAgICBkYXRhID0ge3g6dGhpcy5Qb3NfQXJyYXlbaV0ueCx5OnRoaXMuUG9zX0FycmF5W2ldLnksdGltZTp0aW1lLHRpbWVDb3VudDp0aW1lQ291bnQsY29sb3I6Y29sb3JBcnJheVtpXSxzcGVlZDpsZXZlbERhdGEubW92ZVNwZWVkLHJlcGVhdDpmYWxzZX07XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmVwZWF0ID09IGkpe1xyXG4gICAgICAgICAgICAgICAgZGF0YS5yZXBlYXQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYodGhpcy5udW1iZXJSZXBlYXQgPT0gaSl7XHJcbiAgICAgICAgICAgICAgICBkYXRhLnJlcGVhdCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ub3dfQXJyYXkucHVzaChkYXRhKTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJ1bkdhbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQb3ModHlwZSxudW0pe1xyXG4gICAgICAgIGxldCBwb3NYID0gTWF0aC5yYW5kb20oKSo2MjAgLSAzMTA7XHJcbiAgICAgICAgbGV0IHBvc1kgPSBNYXRoLnJhbmRvbSgpKih0aGlzLmZpdFRvcC10aGlzLmZpdEJvdCkgKyB0aGlzLmZpdEJvdDtcclxuXHJcbiAgICAgICAgbGV0IHBvaW50ID0gY2MudjIocG9zWCxwb3NZKTtcclxuICAgICAgIFxyXG4gICAgICAgIGlmKHRoaXMuUG9zX0FycmF5Lmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLlBvc19BcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCBkaXN0YW5jZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZihpID09IG51bSkgcGQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKHBvc1gscG9zWSx0aGlzLlBvc19BcnJheVtpXS54LHRoaXMuUG9zX0FycmF5W2ldLnkscGQpXHJcbiAgICAgICAgICAgICAgICBpZihkaXN0YW5jZSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgaSA9IDEwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ID0gdGhpcy5nZXRQb3ModHlwZSxudW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPT0gdHJ1ZSAmJiBpID09ICh0aGlzLlBvc19BcnJheS5sZW5ndGgtMSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb2ludDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQb3MyKHR5cGUsbnVtKXtcclxuXHJcbiAgICAgICAgbGV0IHBvc1ggPSBNYXRoLnJhbmRvbSgpKjYyMCAtIDMxMDtcclxuICAgICAgICBsZXQgcG9zWSA9IE1hdGgucmFuZG9tKCkqKHRoaXMuZml0VG9wLXRoaXMuZml0Qm90KSArIHRoaXMuZml0Qm90O1xyXG5cclxuICAgICAgICBsZXQgcG9pbnQgPSBjYy52Mihwb3NYLHBvc1kpO1xyXG4gICAgICAgXHJcbiBcclxuICAgICAgICBpZih0aGlzLlBvc19BcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5Qb3NfQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlzdGFuY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBwZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYoaSA9PSBudW0pIHBkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGRpc3RhbmNlID0gdGhpcy5nZXREaXN0YW5jZTIocG9zWCxwb3NZLHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSxwZClcclxuICAgICAgICAgICAgICAgIGlmKGRpc3RhbmNlID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICBpID0gMTAwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnQgPSB0aGlzLmdldFBvczIodHlwZSxudW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPT0gdHJ1ZSAmJiBpID09ICh0aGlzLlBvc19BcnJheS5sZW5ndGgtMSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb2ludDtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXN0YW5jZSh4MSwgeTEsIHgyLCB5MixudW0pIHtcclxuICAgICAgICB2YXIgamcgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBkeCA9IHgyIC0geDE7XHJcbiAgICAgICAgY29uc3QgZHkgPSB5MiAtIHkxO1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBpZihkaXN0YW5jZSA+IDE2MCl7XHJcbiAgICAgICAgICAgIGlmKG51bSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgIGlmKGRpc3RhbmNlIDwgR2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk9bdGhpcy5sZXZlbC0xXS5tYXhNb3ZlKXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgZWxzZSBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBpZihkaXN0YW5jZSA8IEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV0ubWF4TW92ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgIGVsc2UgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGlzdGFuY2UyKHgxLCB5MSwgeDIsIHkyLG51bSkge1xyXG4gICAgICAgIHZhciBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gMTYwKXtcclxuICAgICAgICAgICAgaWYobnVtID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPCBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1heERpc3RhbmNlKSBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGpnID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNyZWF0ZUJhbGwobnVtYmVyLGNvbG9yLHNwZWVkLHJlcGVhdCl7XHJcbiAgICAgICAgbGV0IGJhbGwgPSBudWxsO1xyXG4gICAgICAgIGlmKGNvbG9yID09IDApYmFsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMucWl1MSk7XHJcbiAgICAgICAgZWxzZSBpZihjb2xvciA9PSAxKWJhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLnFpdTIpO1xyXG4gICAgICAgIGVsc2UgaWYoY29sb3IgPT0gMiliYWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5xaXUzKTtcclxuICAgICAgICBiYWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlN1blwiKTtcclxuICAgICAgICBiYWxsLnpJbmRleCA9IHRoaXMubm93X0FycmF5Lmxlbmd0aCAtIG51bWJlcjtcclxuICAgICAgICBiYWxsLnNldFBvc2l0aW9uKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55KTtcclxuICAgICAgICBiYWxsLmdldENvbXBvbmVudChcIlN1blwiKS5pbml0KG51bWJlcixjb2xvcixzcGVlZCxyZXBlYXQpO1xyXG4gICAgICAgIHRoaXMuYmFsbF9BcnJheS5wdXNoKGJhbGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlc3Ryb3lMaW5lKCkge1xyXG4gICAgICAgIGZvcihsZXQgaSA9MDsgaTwgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKS5jaGlsZHJlbi5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKS5jaGlsZHJlbltpXSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpLmNoaWxkcmVuW2ldLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikuY2hpbGRyZW5baV0gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVMaW5lKHN0YXJ0LGVuZCx0aW1lKXtcclxuICAgICAgICBsZXQgbGluZSA9IGNjLmluc3RhbnRpYXRlKHRoaXMubGluZVByZWZhYik7XHJcbiAgICAgICAgbGluZS5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpO1xyXG4gICAgICAgIGxpbmUuc2V0UG9zaXRpb24oc3RhcnQueCxzdGFydC55KTtcclxuICAgIFxyXG4gICAgICAgIGNvbnN0IGR4ID0gZW5kLnggLSBzdGFydC54O1xyXG4gICAgICAgIGNvbnN0IGR5ID0gZW5kLnkgLSBzdGFydC55O1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBsaW5lLmhlaWdodCA9IGRpc3RhbmNlO1xyXG4gICAgICAgIGxpbmUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuZmlsbFJhbmdlID0gMDtcclxuICAgICAgICBsaW5lLmFuZ2xlID0gLXRoaXMuY2FsY3VsYXRlQW5nbGUoc3RhcnQueCxzdGFydC55LGVuZC54LGVuZC55KTtcclxuICAgICAgICBjYy50d2VlbihsaW5lLmdldENvbXBvbmVudChjYy5TcHJpdGUpKVxyXG4gICAgICAgIC50byh0aW1lLHtmaWxsUmFuZ2U6MX0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FsY3VsYXRlQW5nbGUoeDEsIHkxLCB4MiwgeTIpIHtcclxuICAgICAgICB2YXIgYW5nbGUgPSBNYXRoLmF0YW4yKHkyLXkxLHgyLXgxKSoxODAgLyBNYXRoLlBJIC0gOTA7XHJcbiAgICAgICAgcmV0dXJuIC1hbmdsZTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxjdWxhdGVEaXN0YW5jZSh4MSwgeTEsIHgyLCB5Mikge1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gODAwKSBkaXN0YW5jZSA9IDgwMDtcclxuICAgICAgICBjb25zdCB0aW1lID0gZGlzdGFuY2UvODAwICogMC42O1xyXG4gICAgICAgIHJldHVybiB0aW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZURpc3RhbmNlMih4MSwgeTEsIHgyLCB5Mikge1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gMTIwMCkgZGlzdGFuY2UgPSAxMjAwO1xyXG4gICAgICAgIGNvbnN0IHRpbWUgPSBkaXN0YW5jZS8xMjAwICogMTtcclxuICAgICAgICByZXR1cm4gdGltZTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxjdWxhdGVEaXN0YW5jZTMoeDEsIHkxLCB4MiwgeTIpIHtcclxuICAgICAgICBjb25zdCBkeCA9IHgyIC0geDE7XHJcbiAgICAgICAgY29uc3QgZHkgPSB5MiAtIHkxO1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBpZihkaXN0YW5jZSA+IDEyMDApIGRpc3RhbmNlID0gMTIwMDtcclxuICAgICAgICBjb25zdCB0aW1lID0gZGlzdGFuY2UvMTIwMCAqIDEuNTtcclxuICAgICAgICByZXR1cm4gdGltZTtcclxuICAgIH1cclxuXHJcbiAgICAvL+iDjOaZr+enu+WKqFxyXG4gICAgYmdNb3ZlKHR5cGUpe1xyXG4gICAgICAgIGxldCByYW5kb20gPSBNYXRoLnJhbmRvbSgpKjMwMCArIDMwMDtcclxuICAgICAgICBsZXQgcG9zWCA9IE1hdGgucmFuZG9tKCkqNjAwIC0gMzAwO1xyXG4gICAgXHJcbiAgICAgICAgbGV0IHkxID0gdGhpcy5iZzEueSAtIHJhbmRvbSp0eXBlO1xyXG4gICAgICAgIC8vIGxldCB5MiA9IHRoaXMuYmcyLnkgLSByYW5kb20qdHlwZTtcclxuICAgICAgICBsZXQgdGltZTEgPSAwLjcqKHJhbmRvbS80MDApO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLmJhbGwpXHJcbiAgICAgICAgLnRvKDAuMyx7c2NhbGU6MS4zfSlcclxuICAgICAgICAudG8odGltZTEse3g6cG9zWH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMuYmcxKVxyXG4gICAgICAgIC5kZWxheSgwLjMpXHJcbiAgICAgICAgLnRvKHRpbWUxLHt5OnkxfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgLy8gY2MudHdlZW4odGhpcy5iZzIpXHJcbiAgICAgICAgLy8gLmRlbGF5KDAuMylcclxuICAgICAgICAvLyAudG8odGltZTEse3k6eTJ9KVxyXG4gICAgICAgIC8vIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5vdmVyID09IGZhbHNlICYmIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbSA9PSAwKXtcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgaWYodGhpcy5vdmVyID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgXHJcbiAgICAgICAgfSwgdGltZTEqMTUwMCk7XHJcbiAgICB9XHJcbiAgICAvL+aXtumXtOagvOW8j+i9rOaNolxyXG4gICAgZ2V0VGltZU1hcmdpbihzZWNvbmQ6bnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgbGV0IG0gPSBcIlwiICsgbWluOyAgXHJcbiAgICAgICAgaWYobWluIDwgMTApIG0gPSBcIjBcIittaW47XHJcbiAgICAgICAgbGV0IGFmdGVyTWluID0gdG90YWwgLSBob3VyICogNjAgKiA2MCAtIG1pbiAqIDYwOy8v5Y+W5b6X566X5Ye65YiG5ZCO5Ymp5L2Z55qE56eS5pWwXHJcbiAgICAgICAgbGV0IG1pYW8gPSBhZnRlck1pbiArIFwiXCI7XHJcbiAgICAgICAgaWYoYWZ0ZXJNaW4gPCAxMCkgbWlhbyA9IFwiMFwiICsgYWZ0ZXJNaW47XHJcbiAgICAgICAgcmV0dXJuIG0gKyAnOicgKyBtaWFvXHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICAvL+WmguaenOaYr+WAkuiuoeaXtiDosIPnlKjmraTmlrnms5VcclxuICAgIHVwZGF0ZUNvdW50RG93blRpbWUgKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvdW50VGltZSA+IDAgJiYgdGhpcy5wYXVzZSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50VGltZSAtPSAxO1xyXG4gICAgICAgICAgICB0aGlzLnRpbWUuc3RyaW5nID0gdGhpcy5nZXRUaW1lTWFyZ2luKHRoaXMuY291bnRUaW1lKTtcclxuICAgICAgICAgICAgaWYodGhpcy5jb3VudFRpbWUgPCA1KXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMudGltZS5ub2RlKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMjUse3NjYWxlOjEuNSxjb2xvcjpjYy5jb2xvcigyNTUsMCwwKX0pXHJcbiAgICAgICAgICAgICAgICAudG8oMC4yNSx7c2NhbGU6MSxjb2xvcjpjYy5jb2xvcigyNTUsMjU1LDI1NSl9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KClcclxuICAgICAgICAgICAgICAgIGxldCBvdmVyID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiT3ZlclwiKTtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKG92ZXIpXHJcbiAgICAgICAgICAgICAgICAudG8oMC4yLHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMix7b3BhY2l0eTowfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY291bnRUaW1lIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iZWdpbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnVwZGF0ZUNvdW50RG93blRpbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb3NzKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUsdGhpcy5jbGlja0NvdW50KTtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuY2xpY2tDb3VudCA+IDApIHRpbWUgPSBwYXJzZUludChHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUvdGhpcy5jbGlja0NvdW50ICsgXCJcIik7XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSA9IHBhcnNlSW50KHRpbWUvMTAwICsgXCJcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWVhbl9UaW1lID0gR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWVhbl9UaW1lIC8xMDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRSYW5rKHRpbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldERhdGEoKXtcclxuICAgICAgICBsZXQgZGF0YSA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HQU1FX0RBVEE7XHJcbiAgICAgICAgbGV0IG1hdGNoSWQgPSB0aGlzLmdldE1hdGNoSWQoKTtcclxuICBcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwibWF0Y2hJZFwiOm1hdGNoSWQsXHJcbiAgICAgICAgICAgIFwiZGF0YVwiOiBkYXRhXHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS8oOaVsOaNrjpcIixwb3N0RGF0YSlcclxuICAgICAgICBIdHRwVXRpbC51cGxvYWRVc2VyTG9nRGF0YShwb3N0RGF0YSxmdW5jdGlvbigpe30pXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcbiAgICAgICAgaWYobWF0Y2hJZCA9PSBcInVuZGlmZW5kXCIgfHwgbWF0Y2hJZD09bnVsbCl7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgPSAgdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGxldCBjaGFyID0gcGFyc2VJbnQobWF0Y2hJZFsxMF0pO1xyXG4gICAgICAgICAgICBjaGFyICs9IDE7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgID0gbWF0Y2hJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWF0Y2hJZCA9IG1hdGNoSWQ7XHJcbiAgICAgICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoSWRcIixtYXRjaElkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hdGNoSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICAvLyDlrprkuYnljIXlkKvlj6/nlKjlrZfnrKbnmoTlrZfnrKbpm4ZcclxuICAgICAgICBjb25zdCBjaGFyYWN0ZXJzID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5JztcclxuICAgICAgICAvLyDliJvlu7rkuIDkuKrmlbDnu4Tku6Xkv53lrZjpmo/mnLrlrZfnrKZcclxuICAgICAgICBjb25zdCB1dWlkQXJyYXkgPSBbXTtcclxuICAgICAgICBcclxuICAgICAgICAvLyDlvqrnjq8xMOasoSDnlJ/miJAxMOS9jeeahFVVSURcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIC8vIOeUn+aIkOmaj+acuue0ouW8le+8jOiMg+WbtOaYr+Wtl+espumbhueahOmVv+W6plxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnMubGVuZ3RoKTtcclxuICAgICAgICAgICAgLy8g5LuO5a2X56ym6ZuG5Lit6I635Y+W6ZqP5py65a2X56ymXHJcbiAgICAgICAgICAgIGNvbnN0IHJhbmRvbUNoYXIgPSBjaGFyYWN0ZXJzLmNoYXJBdChyYW5kb21JbmRleCk7XHJcbiAgICAgICAgICAgIC8vIOWwhuWtl+espua3u+WKoOWIsOaVsOe7hOS4rVxyXG4gICAgICAgICAgICB1dWlkQXJyYXkucHVzaChyYW5kb21DaGFyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGRhdGEgPSAgdXVpZEFycmF5LmpvaW4oJycpICsgMSArIFwiXCI7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hOdW1iZXJcIiwxKTtcclxuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJtYXRjaElkXCIsZGF0YSk7XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWF0Y2hJZCA9IGRhdGE7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmFuayh0aW1lKXtcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwidHlwZVwiOjEsXHJcbiAgICAgICAgICAgIFwicmVhY3Rpb25UaW1lXCI6IHRpbWUsXHJcbiAgICAgICAgICAgIFwidG90YWxTdW5Db3VudFwiOiBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy50b3RhbCxcclxuICAgICAgICAgICAgXCJzdWNjZXNzXCI6IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnN1Y2Nlc3NcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zb2xlLmxvZyhwb3N0RGF0YSk7XHJcbiAgICAgICAgSHR0cFV0aWwucmFua0RhdGEoMSxmdW5jdGlvbigpe30scG9zdERhdGEpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVPdmVyXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZU92ZXJcIikub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZU92ZXJcIikpXHJcbiAgICAgICAgLnRvKDAuNCx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgIC5kZWxheSgyKVxyXG4gICAgICAgIC50bygwLjQse29wYWNpdHk6NTB9KVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJPdmVyU2NlbmVcIik7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuc3RhcnQoKVxyXG4gICAgICBcclxuICAgIH1cclxuXHJcbiAgICBvdXRQdXQoKXtcclxuXHJcbiAgICAgICAgbGV0IGRhdGEgPSBHYW1lRGF0YS5faW5zdGFuY2UuQ0xJQ0tfREFUQTtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR0FNRV9EQVRBID0gW107XHJcbiAgICAgICAgLy8gaWYoZGF0YS5zdWNjZWVkID09IHRydWUpICAgIHRoaXMubGFiZWwxLnN0cmluZyA9IFwi5oiQ5YqfL+Wksei0pTrmiJDlip9cIjtcclxuICAgICAgICAvLyBlbHNlIGlmKGRhdGEuc3VjY2VlZCA9PSBmYWxzZSkgICAgdGhpcy5sYWJlbDEuc3RyaW5nID0gXCLmiJDlip8v5aSx6LSlOuWksei0pVwiO1xyXG4gICAgICAgIC8vIHRoaXMubGFiZWwyLnN0cmluZyA9IFwi5aSq6Ziz5oC75pWw6YePOlwiK2RhdGEuc3VuX3RvdGFsO1xyXG4gICAgICAgIC8vIHRoaXMubGFiZWwzLnN0cmluZyA9IFwi5aSq6Ziz56e75Yqo5pWw6YePOlwiK2RhdGEuc3VuX21vdmU7XHJcbiAgICAgICAgLy8gdGhpcy5sYWJlbDQuc3RyaW5nID0gXCLlpKrpmLPnp7vliqjpgJ/luqY6XCIrZGF0YS5zdW5fc3BlZWQ7XHJcbiAgICAgICAgLy8gdGhpcy5sYWJlbDUuc3RyaW5nID0gXCLlpKrpmLPph43lj6DkuKrmlbA6XCIrZGF0YS5zdW5fb3ZlcmxhcDtcclxuICAgICAgICAvLyBpZihkYXRhLnN1bl9jb2xvciA9PSBcInlcIikgIHRoaXMubGFiZWw2LnN0cmluZyA9IFwi5aSq6Ziz6aKc6ImyOnllbGxvd1wiO1xyXG4gICAgICAgIC8vIGVsc2UgaWYoZGF0YS5zdW5fY29sb3IgPT0gXCJ5clwiKSAgICB0aGlzLmxhYmVsNi5zdHJpbmcgPSBcIuWkqumYs+minOiJsjp5ZWxsb3cscmVkXCI7XHJcbiAgICAgICAgLy8gZWxzZSBpZihkYXRhLnN1bl9jb2xvciA9PSBcInlyYlwiKSAgIHRoaXMubGFiZWw2LnN0cmluZyA9IFwi5aSq6Ziz6aKc6ImyOnllbGxvdyxyZWQsYmxhY2tcIjtcclxuICAgXHJcbiAgICAgICAgLy8gdGhpcy5sYWJlbDcuc3RyaW5nID0gXCLlrozmiJDml7bpl7Q6XCIrZGF0YS5maW5pc2hfdGltZStcInNcIjtcclxuICAgICAgICAvLyB0aGlzLmxhYmVsOC5zdHJpbmcgPSBcIumavuW6puetiee6pzpcIitkYXRhLnN1bl9kaWZmaWN1bHR5K1wi57qnXCI7XHJcblxyXG4gICAgICAgIC8vIGlmKGRhdGEuc3VuX2NvbG9yID09IFwieVwiKSAgICBjb25zb2xlLmxvZyhcIuWkqumYs+minOiJsu+8mlwiLFwieWVsbG93XCIgKTtcclxuICAgICAgICAvLyBlbHNlIGlmKGRhdGEuc3VuX2NvbG9yID09IFwieXJcIikgICAgY29uc29sZS5sb2coXCLlpKrpmLPpopzoibLvvJpcIixcInllbGxvdyxyZWRcIiApO1xyXG4gICAgICAgIC8vIGVsc2UgaWYoZGF0YS5zdW5fY29sb3IgPT0gXCJ5cmJcIikgICAgY29uc29sZS5sb2coXCLlpKrpmLPpopzoibLvvJpcIixcInllbGxvdyxyZWQsYmxhY2tcIiApO1xyXG5cclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR0FNRV9EQVRBLnB1c2goR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEpO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5DTElDS19pbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd051bWJlcigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2hvdyA9PSBmYWxzZSkgdGhpcy5zaG93ID0gdHJ1ZTtcclxuICAgICAgICBlbHNlIGlmKHRoaXMuc2hvdyA9PSB0cnVlKSB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiU3VuXCIpLnNob3dOdW1iZXIodGhpcy5zaG93KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG9uRW5hYmxlICgpIHtcclxuICAgICAgICBOb3RpZmljYXRpb24ub24oXCJjbGlja1N1blwiLCB0aGlzLmNsaWNrU3VuLCB0aGlzKTtcclxuICAgICAgICAvLyBOb3RpZmljYXRpb24ub24oXCJIYW1tZXJQbGF5XCIsIHRoaXMuSGFtbWVyUGxheSwgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EaXNhYmxlICgpIHtcclxuICAgICAgICAvLyBOb3RpZmljYXRpb24ub2ZmKFwicmlnaHRBbnN3ZXJzXCIsIHRoaXMucmlnaHRBbnN3ZXJzKTtcclxuICAgICAgICBOb3RpZmljYXRpb24ub2ZmKFwiY2xpY2tTdW5cIiwgdGhpcy5jbGlja1N1bik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICBcclxuICAgIH1cclxufVxyXG4iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Load.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '454adgphRpA6oq5lB6Cg1fK', 'Load'); -// Script/Load.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; -var GameData_1 = require("./GameData"); -// import { apiSign } from "./crypto/sign"; -var NewClass = /** @class */ (function (_super) { - __extends(NewClass, _super); - function NewClass() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.label = null; - _this.text = 'hello'; - return _this; - // update (dt) {} - } - NewClass.prototype.start = function () { - GameData_1.default._instance.GM_INFO.userId = this.getUserId(); - if (GameData_1.default._instance.GM_INFO.userId == null) { - var url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=http://train.sparkus.cn/test/Sun_moves/"; - window.location.href = url; - } - else { - GameData_1.default._instance.GM_INFO.userId = parseInt(GameData_1.default._instance.GM_INFO.userId); - } - }; - NewClass.prototype.createTexture = function () { - var _this = this; - var url = "http://static.sparkus.cn/shoot-sun/assets/resources/native/7a/7a8b41ad-9425-44e2-8f55-7740f12b0e0a.jpg"; - cc.assetManager.loadRemote(url, function (err, texture) { - console.log(err, texture); - if (texture) { - var sprite = _this.node.getChildByName("icon").getComponent(cc.Sprite); - sprite.spriteFrame = new cc.SpriteFrame(texture); - } - }); - }; - NewClass.prototype.getUserId = function () { - var pathStr = window.location.search; - var arr = pathStr.split("&"); - if (pathStr.length >= 0 && arr.length > 0) { - var arr2_1 = []; - arr.map(function (item) { - arr2_1.push(item.split("=")[1]); - }); - GameData_1.default._instance.GM_INFO.userId = arr2_1[0] + ""; - return arr2_1[0]; - } - else { - return null; - } - }; - NewClass.prototype.startGame = function () { - GameData_1.default._instance.GM_INFO.custom = 0; - cc.director.loadScene("GuideScene"); - }; - NewClass.prototype.clickBtn = function (event, data) { - GameData_1.default._instance.GM_INFO.custom = parseInt(data); - cc.director.loadScene("GameScene"); - }; - NewClass.prototype.openLevel = function () { - this.node.getChildByName("Level").active = true; - }; - NewClass.prototype.closeBtn = function () { - this.node.getChildByName("Level").active = false; - }; - NewClass.prototype.back = function (data) { - // debugger; - }; - NewClass.prototype.openBtn = function () { - GameData_1.default._instance.GM_INFO.custom = 0; - cc.director.loadScene("GuideScene"); - }; - NewClass.prototype.openRank = function () { - cc.director.loadScene("RankScene"); - }; - __decorate([ - property(cc.Label) - ], NewClass.prototype, "label", void 0); - __decorate([ - property - ], NewClass.prototype, "text", void 0); - NewClass = __decorate([ - ccclass - ], NewClass); - return NewClass; -}(cc.Component)); -exports.default = NewClass; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxMb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGO0FBQzVFLElBQUEsS0FBd0MsRUFBRSxDQUFDLFVBQVUsRUFBcEQsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsZ0JBQWdCLHNCQUFpQixDQUFDO0FBQzVELHVDQUFrQztBQUdsQywyQ0FBMkM7QUFHM0M7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUFpRkM7UUE5RUcsV0FBSyxHQUFhLElBQUksQ0FBQztRQUd2QixVQUFJLEdBQVcsT0FBTyxDQUFDOztRQTBFdkIsaUJBQWlCO0lBQ3JCLENBQUM7SUF4RUcsd0JBQUssR0FBTDtRQUNJLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELElBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDekMsSUFBSSxHQUFHLEdBQUcsb0hBQW9ILENBQUM7WUFDL0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQzlCO2FBQ0c7WUFDQSxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkY7SUFFTCxDQUFDO0lBRUQsZ0NBQWEsR0FBYjtRQUFBLGlCQVNDO1FBUkcsSUFBSSxHQUFHLEdBQUcsd0dBQXdHLENBQUM7UUFDbkgsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQUMsR0FBRyxFQUFFLE9BQW9CO1lBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3hCLElBQUcsT0FBTyxFQUFDO2dCQUNQLElBQUksTUFBTSxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3BEO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRU8sNEJBQVMsR0FBakI7UUFDSSxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVyQyxJQUFJLEdBQUcsR0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBRyxDQUFDLElBQUUsR0FBRyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxNQUFJLEdBQUMsRUFBRSxDQUFDO1lBQ1osR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUk7Z0JBQ1IsTUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDakMsQ0FBQyxDQUFDLENBQUE7WUFDRixrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDakQsT0FBTyxNQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEI7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFBO1NBQ2Q7SUFDTCxDQUFDO0lBRUQsNEJBQVMsR0FBVDtRQUNJLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCwyQkFBUSxHQUFSLFVBQVMsS0FBSyxFQUFDLElBQUk7UUFDZixrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRCxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsNEJBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVELDJCQUFRLEdBQVI7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3JELENBQUM7SUFFRCx1QkFBSSxHQUFKLFVBQUssSUFBSTtRQUNMLFlBQVk7SUFDaEIsQ0FBQztJQUVELDBCQUFPLEdBQVA7UUFDSSxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN0QyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsMkJBQVEsR0FBUjtRQUNJLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXZDLENBQUM7SUEzRUQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzsyQ0FDSTtJQUd2QjtRQURDLFFBQVE7MENBQ2M7SUFOTixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBaUY1QjtJQUFELGVBQUM7Q0FqRkQsQUFpRkMsQ0FqRnFDLEVBQUUsQ0FBQyxTQUFTLEdBaUZqRDtrQkFqRm9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eSwgcmVxdWlyZUNvbXBvbmVudH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5pbXBvcnQgR2FtZURhdGEgZnJvbSBcIi4vR2FtZURhdGFcIjtcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuaW1wb3J0IFJxIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuLy8gaW1wb3J0IHsgYXBpU2lnbiB9IGZyb20gXCIuL2NyeXB0by9zaWduXCI7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPSB0aGlzLmdldFVzZXJJZCgpO1xyXG4gICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnVzZXJJZCA9PSBudWxsKXtcclxuICAgICAgICAgICAgbGV0IHVybCA9IFwiaHR0cDovL2FwaS5zcGFya3VzLmNuL2FwaS91c2VyL2F1dGgvbG9naW4/ZG9tYWluPWh1aTMyNTc5V2RZUHNnWXEmY2FsbGJhY2s9aHR0cDovL3RyYWluLnNwYXJrdXMuY24vdGVzdC9TdW5fbW92ZXMvXCI7XHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPSBwYXJzZUludChHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQpO1xyXG4gICAgICAgIH1cclxuIFxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVRleHR1cmUoKXtcclxuICAgICAgICBsZXQgdXJsID0gXCJodHRwOi8vc3RhdGljLnNwYXJrdXMuY24vc2hvb3Qtc3VuL2Fzc2V0cy9yZXNvdXJjZXMvbmF0aXZlLzdhLzdhOGI0MWFkLTk0MjUtNDRlMi04ZjU1LTc3NDBmMTJiMGUwYS5qcGdcIjtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIChlcnIsIHRleHR1cmU6Y2MuVGV4dHVyZTJEKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHZhciBzcHJpdGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFVzZXJJZCgpIHtcclxuICAgICAgICBsZXQgcGF0aFN0ciA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XHJcblxyXG4gICAgICAgIGxldCBhcnI9cGF0aFN0ci5zcGxpdChcIiZcIik7XHJcbiAgICAgICAgaWYgKHBhdGhTdHIubGVuZ3RoPj0gMCYmYXJyLmxlbmd0aD4wKSB7XHJcbiAgICAgICAgICAgIGxldCBhcnIyPVtdO1xyXG4gICAgICAgICAgICBhcnIubWFwKGl0ZW09PntcclxuICAgICAgICAgICAgICAgIGFycjIucHVzaChpdGVtLnNwbGl0KFwiPVwiKVsxXSlcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkID0gYXJyMlswXSArIFwiXCI7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnIyWzBdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbSA9IDA7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR3VpZGVTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY2xpY2tCdG4oZXZlbnQsZGF0YSl7XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8uY3VzdG9tID0gcGFyc2VJbnQoZGF0YSk7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgfSAgIFxyXG5cclxuICAgIG9wZW5MZXZlbCgpe1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxldmVsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VCdG4oKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMZXZlbFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrKGRhdGEpe1xyXG4gICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5CdG4oKXtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b20gPSAwO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkd1aWRlU2NlbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblJhbmsoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJSYW5rU2NlbmVcIik7XHJcblxyXG4gICAgfVxyXG4gICBcclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/BallAudioManager.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'bd9f78XOD5PmLTjk2rLYBiz', 'BallAudioManager'); -// Script/BallAudioManager.js +cc._RF.push(module, 'b48a2ukFF1FlJGSkUcHUIET', 'CtrlFluxayTexture'); +// Script/CtrlFluxayTexture.js "use strict"; cc.Class({ "extends": cc.Component, properties: { - //背景音乐 - audioGameBgm0: { - "default": null, - type: cc.AudioClip + m_delayTime: { + "default": 0 }, - // 按钮点击 - audioButtonClick: { - "default": null, - type: cc.AudioClip + m_fluxayTime: { + "default": 1 }, - // 报警音效 - audioWarning: { - "default": null, - type: cc.AudioClip + m_intervalTime: { + "default": 1 }, - //游戏开始音效 - audioWin: { - "default": null, - type: cc.AudioClip + m_scale: { + "default": 1 }, - reward: false, - finish: false, - rewardCount: 0 + m_angle: { + "default": 0 + }, + m_reviseStartTime: { + "default": 0 + }, + m_reviseTimeScale: { + "default": 1 + } }, ctor: function ctor() { - this.mAudioMap = {}; - /** - * 默认音量大小 - * @type {number} - */ - - this.bgMusicVolume = 0.1; - this.effectMusicVolume = 1; - this.mMusicSwitch = 1; - this.mEffectSwitch = 1; - }, - play: function play(audioSource, loop, callback, isBgMusic) { - if (isBgMusic && !this.mMusicSwitch) return; - if (!isBgMusic && !this.mEffectSwitch) return; - var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume; - - if (cc.sys.isBrowser) { - if (audioSource == this.brickSound) { - volume = 0.1; - } - - var context = cc.audioEngine.play(audioSource, loop, volume); - - if (callback) { - cc.audioEngine.setFinishCallback(context, function () { - callback.call(this); - }.bind(this)); - } // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src); - - - this.mAudioMap[audioSource] = context; - return audioSource; - } else { - var context = wx.createInnerAudioContext(); - context.autoplay = true; - context.loop = loop; - context.obeyMuteSwitch = true; - context.volume = volume; - - if (callback) { - context.onEnded(function () { - callback.call(this); - }.bind(this)); - } else { - context.offEnded(); - } // var audioPath = cc.url.raw("resources/BallMaster/sounds" + audioSource.name + ".mp3"); - - - context.src = audioSource.nativeUrl; - context.play(); - this.mAudioMap[audioSource] = context; // cc.wwx.OutPut.log('play audio effect wx: ' + audioSource.nativeUrl); - - return audioSource; - } - }, - save: function save() {// cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch); - // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch); + this._time = 0; }, onLoad: function onLoad() { - var _this = this; + this._time -= this.m_delayTime; + var sprite = this.node.getComponent(cc.Sprite); + this._material = sprite.getMaterial(0); - // cc.wwx.Storage.getItem(cc.wwx.Storage.Key_Setting_Music_Volume, function(volume) { - // this.mMusicSwitch = parseInt(volume); - // }.bind(this), 1); - // cc.wwx.Storage.getItem(cc.wwx.Storage.Key_Setting_Effect_Volume, function(volume) { - // this.mEffectSwitch = parseInt(volume); - // }.bind(this), 1); - this.reward = false; - this.finish = false; - this.rewardCount = 0; - window.addEventListener('rewardCanUse', function () { - // 此时激励可用 游戏内部逻辑 - _this.reward = true; - }); - 'undefined' != typeof window['reward'] ? window.dispatchEvent(window['reward']) : ""; - this.preload(); + this._material.setProperty("u_scale", this.m_scale); + + this._material.setProperty("u_angle", this.m_angle); + + this.refreshSpriteFrameData(); }, - preload: function preload() { - if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { - return; + update: function update(dt) { + if (this._time > this.m_fluxayTime + this.m_intervalTime) { + this._time = 0; } - var musics = [this.audioGameBgm0]; - musics.forEach(function (path) {// var musicPath = wxDownloader.REMOTE_SERVER_ROOT + path; - // if (musicPath != wxDownloader.REMOTE_SERVER_ROOT && musicPath.endsWith('.mp3')) { - // cc.loader.load(musicPath, function(err, remoteUrl) { - // if (err) { - // cc.error(err.message || err); - // return; - // } - // }); - // } - }); - }, - getAudioMusicSwitch: function getAudioMusicSwitch() { - return this.mMusicSwitch; - }, - getAudioEffectSwitch: function getAudioEffectSwitch() { - return this.mEffectSwitch; - }, - trunAudioSound: function trunAudioSound(on) { - this.switchMusic(on); - this.switchEffect(on); - }, - switchMusic: function switchMusic(on) { - if (this.mMusicSwitch != (on ? 1 : 0)) { - this.mMusicSwitch = 1 - this.mMusicSwitch; // this.save(); + var u_time = this._time / this.m_fluxayTime; + + if (this._time > this.m_fluxayTime) { + u_time = 1 + (this._time - this.m_fluxayTime) / this.m_intervalTime; } - if (on) { - this.playMusicGame(); - } else { - this.stopMusic(); + if (this.m_reviseTimeScale != null && this.m_reviseStartTime != null) { + u_time = u_time / this.m_reviseTimeScale; + u_time -= this.m_reviseStartTime; } - }, - switchEffect: function switchEffect(on) { - if (this.mEffectSwitch != (on ? 1 : 0)) { - this.mEffectSwitch = 1 - this.mEffectSwitch; // this.save(); - } - }, - onHide: function onHide() { - cc.audioEngine.pauseAll(); // if (CC_JSB) { - // } else { - // for (var key in this.mAudioMap) { - // if (key === this.mMusicKey) { - // this.mAudioMap[key].pause(); - // } else { - // this.mAudioMap[key].stop(); - // } - // } - // } - }, - onShow: function onShow() { - cc.audioEngine.resumeAll(); // if (CC_JSB) { - // } else { - // if (!this.mMusicSwitch) return; - // var context = this.mAudioMap[this.mMusicKey]; - // if (context) { - // context.play(); - // } - // } - }, - playMusic: function playMusic(key, callback, loop) { - loop = typeof loop == 'undefined' || loop ? true : false; - this.stopMusic(); - this.mMusicKey = this.play(key, loop, callback, true); - }, - /** - * 游戏背景音乐 - */ - playMusicGame: function playMusicGame() { - this.playMusic(this.audioGameBgm0); + this._material.setProperty("u_time", u_time); + + this._time += dt; }, + refreshSpriteFrameData: function refreshSpriteFrameData() { + var sprite = this.node.getComponent(cc.Sprite); + var material = sprite.getMaterial(0); + var frame = sprite.spriteFrame; - /** - * 停止背景音乐播放 - */ - stopMusic: function stopMusic() { - // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey); - var context = this.mAudioMap[this.mMusicKey]; + if (frame != null) { + // xMin + var l = frame.uv[0]; // xMax - if (typeof context != 'undefined') { - if (cc.sys.isBrowser) { - cc.audioEngine.stop(context); - } else { - context.stop(); + var r = frame.uv[6]; // yMax + + var b = frame.uv[3]; // yMin + + var t = frame.uv[5]; // 纹理在合图中的四个边界 uv 坐标 + + var u_uvOffset = new cc.Vec4(l, t, r, b); // 纹理是否旋转 + + var u_uvRotated = frame.isRotated() ? 1.0 : 0.0; // 设置材质的属性 + + if (material.getProperty("u_uvOffset") !== undefined) { + material.setProperty("u_uvOffset", u_uvOffset); } - cc.audioEngine.stop(context); + if (material.getProperty("u_uvRotated") !== undefined) { + material.setProperty("u_uvRotated", u_uvRotated); + } } - }, - // 炸弹、火箭爆炸音效 - playBomb: function playBomb() { - return this.play(this.audioBomb, false); - }, - //激光音效 - playJiGuang: function playJiGuang() { - return this.play(this.audioJiGuang, false); - }, - //技能音效 - playItem1: function playItem1() { - return this.play(this.audioItem1, false); - }, - - /* - * 游戏开始音效 - * - */ - playGameStart: function playGameStart() { - return this.play(this.audioGameStart, false); - }, - - /* - * 失败的游戏结束 - */ - playGameOver: function playGameOver() { - return this.play(this.audioGameOver, false); - }, - - /* - * 成功的游戏结束 - */ - playGameResultFailed: function playGameResultFailed() { - return this.play(this.audioGameResultFail, false); - }, - - /* - * 成功的游戏结束 - */ - playGameResultSuccess: function playGameResultSuccess() { - return this.play(this.audioGameResultSuccess, false); - }, - - /** - * 报警的音效 - */ - playWarning: function playWarning() { - return this.play(this.audioWarning, false); - }, - playWin: function playWin() { - return this.play(this.audioWin, false); - }, - - /* - * 方块碰撞的声音 - */ - playBrick: function playBrick() { - return this.play(this.brickSound, false); - }, - //方块破碎的声音 - brickBoom: function brickBoom() { - return this.play(this.audioObj, false); - }, - - /** - * 按钮 - */ - playAudioButton: function playAudioButton() { - return this.play(this.audioButtonClick, false); - }, - playRandomMatch: function playRandomMatch() { - this.playMusic(this.randomMatchSound); - }, - playMatchFoundSound: function playMatchFoundSound() { - this.stopMusic(); - return this.play(this.matchFoundSound, false); } }); @@ -3929,586 +5272,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCYWxsQXVkaW9NYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwiYXVkaW9HYW1lQmdtMCIsInR5cGUiLCJBdWRpb0NsaXAiLCJhdWRpb0J1dHRvbkNsaWNrIiwiYXVkaW9XYXJuaW5nIiwiYXVkaW9XaW4iLCJyZXdhcmQiLCJmaW5pc2giLCJyZXdhcmRDb3VudCIsImN0b3IiLCJtQXVkaW9NYXAiLCJiZ011c2ljVm9sdW1lIiwiZWZmZWN0TXVzaWNWb2x1bWUiLCJtTXVzaWNTd2l0Y2giLCJtRWZmZWN0U3dpdGNoIiwicGxheSIsImF1ZGlvU291cmNlIiwibG9vcCIsImNhbGxiYWNrIiwiaXNCZ011c2ljIiwidm9sdW1lIiwic3lzIiwiaXNCcm93c2VyIiwiYnJpY2tTb3VuZCIsImNvbnRleHQiLCJhdWRpb0VuZ2luZSIsInNldEZpbmlzaENhbGxiYWNrIiwiY2FsbCIsImJpbmQiLCJ3eCIsImNyZWF0ZUlubmVyQXVkaW9Db250ZXh0IiwiYXV0b3BsYXkiLCJvYmV5TXV0ZVN3aXRjaCIsIm9uRW5kZWQiLCJvZmZFbmRlZCIsInNyYyIsIm5hdGl2ZVVybCIsInNhdmUiLCJvbkxvYWQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiZGlzcGF0Y2hFdmVudCIsInByZWxvYWQiLCJwbGF0Zm9ybSIsIldFQ0hBVF9HQU1FIiwibXVzaWNzIiwiZm9yRWFjaCIsInBhdGgiLCJnZXRBdWRpb011c2ljU3dpdGNoIiwiZ2V0QXVkaW9FZmZlY3RTd2l0Y2giLCJ0cnVuQXVkaW9Tb3VuZCIsIm9uIiwic3dpdGNoTXVzaWMiLCJzd2l0Y2hFZmZlY3QiLCJwbGF5TXVzaWNHYW1lIiwic3RvcE11c2ljIiwib25IaWRlIiwicGF1c2VBbGwiLCJvblNob3ciLCJyZXN1bWVBbGwiLCJwbGF5TXVzaWMiLCJrZXkiLCJtTXVzaWNLZXkiLCJzdG9wIiwicGxheUJvbWIiLCJhdWRpb0JvbWIiLCJwbGF5SmlHdWFuZyIsImF1ZGlvSmlHdWFuZyIsInBsYXlJdGVtMSIsImF1ZGlvSXRlbTEiLCJwbGF5R2FtZVN0YXJ0IiwiYXVkaW9HYW1lU3RhcnQiLCJwbGF5R2FtZU92ZXIiLCJhdWRpb0dhbWVPdmVyIiwicGxheUdhbWVSZXN1bHRGYWlsZWQiLCJhdWRpb0dhbWVSZXN1bHRGYWlsIiwicGxheUdhbWVSZXN1bHRTdWNjZXNzIiwiYXVkaW9HYW1lUmVzdWx0U3VjY2VzcyIsInBsYXlXYXJuaW5nIiwicGxheVdpbiIsInBsYXlCcmljayIsImJyaWNrQm9vbSIsImF1ZGlvT2JqIiwicGxheUF1ZGlvQnV0dG9uIiwicGxheVJhbmRvbU1hdGNoIiwicmFuZG9tTWF0Y2hTb3VuZCIsInBsYXlNYXRjaEZvdW5kU291bmQiLCJtYXRjaEZvdW5kU291bmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxTQURQO0FBRUxDLEVBQUFBLFVBQVUsRUFBQztBQUNQO0FBQ0FDLElBQUFBLGFBQWEsRUFBQztBQUNWLGlCQUFRLElBREU7QUFFVkMsTUFBQUEsSUFBSSxFQUFDTCxFQUFFLENBQUNNO0FBRkUsS0FGUDtBQU1QO0FBQ0FDLElBQUFBLGdCQUFnQixFQUFDO0FBQ2IsaUJBQVEsSUFESztBQUViRixNQUFBQSxJQUFJLEVBQUNMLEVBQUUsQ0FBQ007QUFGSyxLQVBWO0FBV1A7QUFDQUUsSUFBQUEsWUFBWSxFQUFDO0FBQ1QsaUJBQVEsSUFEQztBQUVUSCxNQUFBQSxJQUFJLEVBQUNMLEVBQUUsQ0FBQ007QUFGQyxLQVpOO0FBaUJQO0FBQ0FHLElBQUFBLFFBQVEsRUFBQztBQUNMLGlCQUFRLElBREg7QUFFTEosTUFBQUEsSUFBSSxFQUFDTCxFQUFFLENBQUNNO0FBRkgsS0FsQkY7QUF1QlBJLElBQUFBLE1BQU0sRUFBRSxLQXZCRDtBQXdCUEMsSUFBQUEsTUFBTSxFQUFFLEtBeEJEO0FBeUJQQyxJQUFBQSxXQUFX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TDtBQUNKO0FBQ0E7QUFDSUMsRUFBQUEscUJBN1FLLG1DQThRTDtBQUNJLFdBQU8sS0FBSzdELElBQUwsQ0FBVSxLQUFLOEQsc0JBQWYsRUFBc0MsS0FBdEMsQ0FBUDtBQUNILEdBaFJJOztBQWlSTDtBQUNKO0FBQ0E7QUFDSUMsRUFBQUEsV0FwUksseUJBcVJMO0FBQ0ksV0FBTyxLQUFLL0QsSUFBTCxDQUFVLEtBQUtYLFlBQWYsRUFBNEIsS0FBNUIsQ0FBUDtBQUVILEdBeFJJO0FBMFJMMkUsRUFBQUEsT0ExUksscUJBMlJMO0FBQ0ksV0FBTyxLQUFLaEUsSUFBTCxDQUFVLEtBQUtWLFFBQWYsRUFBd0IsS0FBeEIsQ0FBUDtBQUNILEdBN1JJOztBQStSTDtBQUNKO0FBQ0E7QUFDSTJFLEVBQUFBLFNBbFNLLHVCQW1TTDtBQUNJLFdBQU8sS0FBS2pFLElBQUwsQ0FBVSxLQUFLUSxVQUFmLEVBQTBCLEtBQTFCLENBQVA7QUFDSCxHQXJTSTtBQXNTTDtBQUNBMEQsRUFBQUEsU0F2U0ssdUJBdVNNO0FBQ1AsV0FBTyxLQUFLbEUsSUFBTCxDQUFVLEtBQUttRSxRQUFmLEVBQXdCLEtBQXhCLENBQVA7QUFDSCxHQXpTSTs7QUEwU0w7QUFDSjtBQUNBO0FBQ0lDLEVBQUFBLGVBN1NLLDZCQTZTYztBQUNmLFdBQU8sS0FBS3BFLElBQUwsQ0FBVSxLQUFLWixnQkFBZixFQUFpQyxLQUFqQyxDQUFQO0FBQ0gsR0EvU0k7QUFpVExpRixFQUFBQSxlQWpUSyw2QkFrVEw7QUFDSSxTQUFLeEIsU0FBTCxDQUFlLEtBQUt5QixnQkFBcEI7QUFDSCxHQXBUSTtBQXFUTEMsRUFBQUEsbUJBclRLLGlDQXNUTDtBQUNJLFNBQUsvQixTQUFMO0FBQ0EsV0FBTyxLQUFLeEMsSUFBTCxDQUFVLEtBQUt3RSxlQUFmLEVBQWdDLEtBQWhDLENBQVA7QUFDSDtBQXpUSSxDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogY2MuQ29tcG9uZW50LFxuICAgIHByb3BlcnRpZXM6e1xuICAgICAgICAvL+iDjOaZr+mfs+S5kFxuICAgICAgICBhdWRpb0dhbWVCZ20wOntcbiAgICAgICAgICAgIGRlZmF1bHQ6bnVsbCxcbiAgICAgICAgICAgIHR5cGU6Y2MuQXVkaW9DbGlwXG4gICAgICAgIH0sXG4gICAgICAgIC8vIOaMiemSrueCueWHu1xuICAgICAgICBhdWRpb0J1dHRvbkNsaWNrOntcbiAgICAgICAgICAgIGRlZmF1bHQ6bnVsbCxcbiAgICAgICAgICAgIHR5cGU6Y2MuQXVkaW9DbGlwXG4gICAgICAgIH0sXG4gICAgICAgIC8vIOaKpeitpumfs+aViFxuICAgICAgICBhdWRpb1dhcm5pbmc6e1xuICAgICAgICAgICAgZGVmYXVsdDpudWxsLFxuICAgICAgICAgICAgdHlwZTpjYy5BdWRpb0NsaXBcbiAgICAgICAgfSxcblxuICAgICAgICAvL+a4uOaIj+W8gOWni+mfs+aViFxuICAgICAgICBhdWRpb1dpbjp7XG4gICAgICAgICAgICBkZWZhdWx0Om51bGwsXG4gICAgICAgICAgICB0eXBlOmNjLkF1ZGlvQ2xpcFxuICAgICAgICB9LFxuXG4gICAgICAgIHJld2FyZDogZmFsc2UsXG4gICAgICAgIGZpbmlzaDogZmFsc2UsXG4gICAgICAgIHJld2FyZENvdW50OiAwXG5cbiAgICB9LFxuICAgIGN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5tQXVkaW9NYXAgPSB7fTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog6buY6K6k6Z+z6YeP5aSn5bCPXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJnTXVzaWNWb2x1bWUgPSAwLjE7XG4gICAgICAgIHRoaXMuZWZmZWN0TXVzaWNWb2x1bWUgPSAxO1xuXG4gICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMTtcbiAgICAgICAgdGhpcy5tRWZmZWN0U3dpdGNoID0gMTtcbiAgICB9LFxuICAgIHBsYXkgOiBmdW5jdGlvbihhdWRpb1NvdXJjZSwgbG9vcCwgY2FsbGJhY2ssIGlzQmdNdXNpYykge1xuICAgICAgICBpZiAoaXNCZ011c2ljICYmICF0aGlzLm1NdXNpY1N3aXRjaCkgcmV0dXJuO1xuICAgICAgICBpZiAoIWlzQmdNdXNpYyAmJiAhdGhpcy5tRWZmZWN0U3dpdGNoKSByZXR1cm47XG5cbiAgICAgICAgdmFyIHZvbHVtZSA9IGlzQmdNdXNpYyA/IHRoaXMuYmdNdXNpY1ZvbHVtZSA6IHRoaXMuZWZmZWN0TXVzaWNWb2x1bWU7XG5cbiAgICAgICAgaWYgKGNjLnN5cy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIGlmKGF1ZGlvU291cmNlID09IHRoaXMuYnJpY2tTb3VuZCl7XG4gICAgICAgICAgICAgICAgdm9sdW1lID0gMC4xO1xuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gY2MuYXVkaW9FbmdpbmUucGxheShhdWRpb1NvdXJjZSwgbG9vcCwgdm9sdW1lKTtcbiAgICAgICAgICAgIGlmIChjYWxsYmFjayl7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RmluaXNoQ2FsbGJhY2soY29udGV4dCwgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY2Mud3d4Lk91dFB1dC5sb2coJ3BsYXkgYXVkaW8gZWZmZWN0IGlzQnJvd3NlcjogJyArIGNvbnRleHQuc3JjKTtcblxuICAgICAgICAgICAgdGhpcy5tQXVkaW9NYXBbYXVkaW9Tb3VyY2VdID0gY29udGV4dDtcbiAgICAgICAgICAgIHJldHVybiBhdWRpb1NvdXJjZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gd3guY3JlYXRlSW5uZXJBdWRpb0NvbnRleHQoKTtcbiAgICAgICAgICAgIGNvbnRleHQuYXV0b3BsYXkgPSB0cnVlO1xuICAgICAgICAgICAgY29udGV4dC5sb29wID0gbG9vcDtcbiAgICAgICAgICAgIGNvbnRleHQub2JleU11dGVTd2l0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgY29udGV4dC52b2x1bWUgPSB2b2x1bWU7XG5cbiAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGNvbnRleHQub25FbmRlZChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9mZkVuZGVkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAgICAgLy8gdmFyIGF1ZGlvUGF0aCA9IGNjLnVybC5yYXcoXCJyZXNvdXJjZXMvQmFsbE1hc3Rlci9zb3VuZHNcIiArIGF1ZGlvU291cmNlLm5hbWUgKyBcIi5tcDNcIik7XG4gICAgICAgICAgICBjb250ZXh0LnNyYyA9IGF1ZGlvU291cmNlLm5hdGl2ZVVybDtcbiAgICAgICAgICAgIGNvbnRleHQucGxheSgpXG4gICAgICAgICAgICB0aGlzLm1BdWRpb01hcFthdWRpb1NvdXJjZV0gPSBjb250ZXh0O1xuICAgICAgICBcbiAgICAgICAgICAgIC8vIGNjLnd3eC5PdXRQdXQubG9nKCdwbGF5IGF1ZGlvIGVmZmVjdCB3eDogJyArIGF1ZGlvU291cmNlLm5hdGl2ZVVybCk7XG4gICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIGF1ZGlvU291cmNlO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIHNhdmU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19NdXNpY19Wb2x1bWUsIHRoaXMubU11c2ljU3dpdGNoKTtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19FZmZlY3RfVm9sdW1lLCB0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH0sXG4gICAgb25Mb2FkKCkge1xuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5nZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX011c2ljX1ZvbHVtZSwgZnVuY3Rpb24odm9sdW1lKSB7XG4gICAgICAgIC8vICAgICB0aGlzLm1NdXNpY1N3aXRjaCA9IHBhcnNlSW50KHZvbHVtZSk7XG4gICAgICAgIC8vIH0uYmluZCh0aGlzKSwgMSk7XG5cbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2UuZ2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19FZmZlY3RfVm9sdW1lLCBmdW5jdGlvbih2b2x1bWUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMubUVmZmVjdFN3aXRjaCA9IHBhcnNlSW50KHZvbHVtZSk7XG4gICAgICAgIC8vIH0uYmluZCh0aGlzKSwgMSk7XG5cblxuICAgICAgICB0aGlzLnJld2FyZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmlzaCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJld2FyZENvdW50ID0gMDtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jld2FyZENhblVzZScsICgpID0+IHtcbiAgICAgICAgICAgIC8vIOatpOaXtua/gOWKseWPr+eUqCDmuLjmiI/lhoXpg6jpgLvovpFcbiAgICAgICAgICAgIHRoaXMucmV3YXJkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIHdpbmRvd1sncmV3YXJkJ10gPyBcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQod2luZG93WydyZXdhcmQnXSk6XCJcIlxuXG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xuICAgIH0sXG4gICAgcHJlbG9hZCA6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoIShjYy5zeXMucGxhdGZvcm0gPT09IGNjLnN5cy5XRUNIQVRfR0FNRSkpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdmFyIG11c2ljcyA9IFtcbiAgICAgICAgICAgIHRoaXMuYXVkaW9HYW1lQmdtMCxcbiAgICAgICAgXTtcbiAgICAgICAgbXVzaWNzLmZvckVhY2goZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICAgICAgLy8gdmFyIG11c2ljUGF0aCA9IHd4RG93bmxvYWRlci5SRU1PVEVfU0VSVkVSX1JPT1QgKyBwYXRoO1xuICAgICAgICAgICAgLy8gaWYgKG11c2ljUGF0aCAhPSB3eERvd25sb2FkZXIuUkVNT1RFX1NFUlZFUl9ST09UICYmIG11c2ljUGF0aC5lbmRzV2l0aCgnLm1wMycpKSB7XG4gICAgICAgICAgICAvLyAgICAgY2MubG9hZGVyLmxvYWQobXVzaWNQYXRoLCBmdW5jdGlvbihlcnIsIHJlbW90ZVVybCkge1xuICAgICAgICAgICAgLy8gICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAvLyAgICAgICAgICAgICBjYy5lcnJvcihlcnIubWVzc2FnZSB8fCBlcnIpO1xuICAgICAgICAgICAgLy8gICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH0pXG4gICAgfSxcblxuICAgIGdldEF1ZGlvTXVzaWNTd2l0Y2goKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubU11c2ljU3dpdGNoO1xuXG4gICAgfSxcbiAgICBnZXRBdWRpb0VmZmVjdFN3aXRjaCgpXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgIH0sXG4gICAgdHJ1bkF1ZGlvU291bmQob24pXG4gICAge1xuICAgICAgICB0aGlzLnN3aXRjaE11c2ljKG9uKTtcbiAgICAgICAgdGhpcy5zd2l0Y2hFZmZlY3Qob24pXG4gICAgfSxcbiAgICBzd2l0Y2hNdXNpYyA6IGZ1bmN0aW9uKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1NdXNpY1N3aXRjaCAhPSAob24/MTowKSlcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxLXRoaXMubU11c2ljU3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICBpZihvbilcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBzd2l0Y2hFZmZlY3QgOiBmdW5jdGlvbihvbikge1xuICAgICAgICBpZiAodGhpcy5tRWZmZWN0U3dpdGNoICE9IChvbj8xOjApKXtcbiAgICAgICAgICAgIHRoaXMubUVmZmVjdFN3aXRjaCA9IDEtdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG5cbiAgICAgICAgfVxuICAgIH0sXG4gICAgb25IaWRlICgpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucGF1c2VBbGwoKTtcblxuICAgICAgICAvLyBpZiAoQ0NfSlNCKSB7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5tQXVkaW9NYXApIHtcbiAgICAgICAgLy8gICAgICAgICBpZiAoa2V5ID09PSB0aGlzLm1NdXNpY0tleSkge1xuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLm1BdWRpb01hcFtrZXldLnBhdXNlKCk7XG4gICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5tQXVkaW9NYXBba2V5XS5zdG9wKCk7XG4gICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG4gICAgfSxcblxuICAgIG9uU2hvdyAoKSB7XG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnJlc3VtZUFsbCgpO1xuXG4gICAgICAgIC8vIGlmIChDQ19KU0IpIHtcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIGlmICghdGhpcy5tTXVzaWNTd2l0Y2gpIHJldHVybjtcbiAgICAgICAgLy8gICAgIHZhciBjb250ZXh0ID0gdGhpcy5tQXVkaW9NYXBbdGhpcy5tTXVzaWNLZXldO1xuICAgICAgICAvLyAgICAgaWYgKGNvbnRleHQpIHtcbiAgICAgICAgLy8gICAgICAgICBjb250ZXh0LnBsYXkoKTtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuICAgIH0sXG4gICAgcGxheU11c2ljIDogZnVuY3Rpb24oa2V5LCBjYWxsYmFjaywgbG9vcCkge1xuXG4gICAgICAgIGxvb3AgPSB0eXBlb2YgbG9vcCA9PSAndW5kZWZpbmVkJyAgfHwgbG9vcCA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB0aGlzLm1NdXNpY0tleSA9IHRoaXMucGxheShrZXksIGxvb3AsIGNhbGxiYWNrLCB0cnVlKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIOa4uOaIj+iDjOaZr+mfs+S5kFxuICAgICAqL1xuICAgIHBsYXlNdXNpY0dhbWUgKCkge1xuICAgICAgICB0aGlzLnBsYXlNdXNpYyh0aGlzLmF1ZGlvR2FtZUJnbTApO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICog5YGc5q2i6IOM5pmv6Z+z5LmQ5pKt5pS+XG4gICAgICovXG4gICAgc3RvcE11c2ljICgpIHtcbiAgICAgICAgLy8gY2Mud3d4Lk91dFB1dC5sb2coJ3N0b3BNdXNpYyBhdWRpbyBlZmZlY3Qgd3g6ICcgKyB0aGlzLm1NdXNpY0tleSk7XG5cbiAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLm1BdWRpb01hcFt0aGlzLm1NdXNpY0tleV07XG5cbiAgICAgICAgaWYgKHR5cGVvZihjb250ZXh0KSAhPSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKGNjLnN5cy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zdG9wKGNvbnRleHQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnN0b3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3AoY29udGV4dCk7XG5cbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy8g54K45by544CB54Gr566t54iG54K46Z+z5pWIXG4gICAgcGxheUJvbWIgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9Cb21iLCBmYWxzZSk7XG4gICAgfSxcbiAgICAvL+a/gOWFiemfs+aViFxuICAgIHBsYXlKaUd1YW5nKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0ppR3VhbmcsIGZhbHNlKTtcbiAgICB9LFxuICAgIC8v5oqA6IO96Z+z5pWIXG4gICAgcGxheUl0ZW0xKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0l0ZW0xLCBmYWxzZSk7XG4gICAgfSxcbiAgICAvKlxuICAgICAqIOa4uOaIj+W8gOWni+mfs+aViFxuICAgICAqXG4gICAgICovXG4gICAgIHBsYXlHYW1lU3RhcnQoKVxuICAgICB7XG4gICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9HYW1lU3RhcnQsIGZhbHNlKTtcbiAgICAgfSxcbiAgICAgLypcbiAgICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXG4gICAgICAqL1xuICAgICBwbGF5R2FtZU92ZXIoKVxuICAgICB7XG4gICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9HYW1lT3ZlcixmYWxzZSk7XG4gICAgIH0sXG4gICAgLypcbiAgICAgICog5oiQ5Yqf55qE5ri45oiP57uT5p2fXG4gICAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0RmFpbGVkKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0dhbWVSZXN1bHRGYWlsLGZhbHNlKTtcbiAgICB9LFxuICAgIC8qXG4gICog5oiQ5Yqf55qE5ri45oiP57uT5p2fXG4gICovXG4gICAgcGxheUdhbWVSZXN1bHRTdWNjZXNzKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0dhbWVSZXN1bHRTdWNjZXNzLGZhbHNlKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIOaKpeitpueahOmfs+aViFxuICAgICAqL1xuICAgIHBsYXlXYXJuaW5nKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb1dhcm5pbmcsZmFsc2UpO1xuXG4gICAgfSxcblxuICAgIHBsYXlXaW4oKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheSh0aGlzLmF1ZGlvV2luLGZhbHNlKTtcbiAgICB9LFxuXG4gICAgLypcbiAgICAgKiDmlrnlnZfnorDmkp7nmoTlo7Dpn7NcbiAgICAgKi9cbiAgICBwbGF5QnJpY2soKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheSh0aGlzLmJyaWNrU291bmQsZmFsc2UpO1xuICAgIH0sXG4gICAgLy/mlrnlnZfnoLTnoo7nmoTlo7Dpn7NcbiAgICBicmlja0Jvb20oKXtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheSh0aGlzLmF1ZGlvT2JqLGZhbHNlKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIOaMiemSrlxuICAgICAqL1xuICAgIHBsYXlBdWRpb0J1dHRvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpcy5hdWRpb0J1dHRvbkNsaWNrLCBmYWxzZSk7XG4gICAgfSxcblxuICAgIHBsYXlSYW5kb21NYXRjaCgpXG4gICAge1xuICAgICAgICB0aGlzLnBsYXlNdXNpYyh0aGlzLnJhbmRvbU1hdGNoU291bmQpO1xuICAgIH0sXG4gICAgcGxheU1hdGNoRm91bmRTb3VuZCgpXG4gICAge1xuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXMubWF0Y2hGb3VuZFNvdW5kLCBmYWxzZSk7XG4gICAgfVxufSk7Il19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/GuideManager.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '3fd2fh6vHNJeISUizW09xat', 'GuideManager'); -// Script/GuideManager.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var GameData_1 = require("./GameData"); -var Notification_1 = require("./Notification"); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var NewClass = /** @class */ (function (_super) { - __extends(NewClass, _super); - function NewClass() { - var _this = _super !== null && _super.apply(this, arguments) || this; - // LIFE-CYCLE CALLBACKS: - _this.dialog = null; - _this.ball = null; - _this.qiu1 = null; - _this.linePrefab = null; - return _this; - // update (dt) {} - } - // onLoad () {} - NewClass.prototype.start = function () { - this.custom = 1; - this.init(); - this.startGuide(0); - }; - NewClass.prototype.init = function () { - this.ball.zIndex = 100; - this.Pos_Array = []; - this.ball_Array = []; - this.begin = false; - this.clickNow = 0; - this.tip = null; - }; - NewClass.prototype.startGuide = function (type) { - var _this = this; - var num = this.custom; - var time = 0.5; - var delay = 1.5; - var name = "tip" + num; - if (type != 0) { - cc.tween(this.node) - .to(time, { opacity: 255 }) - .call(function () { - _this.custom += 1; - if (type != 0) - _this.custom = 2; - if (_this.custom == 2) - _this.createSun1(); - else if (_this.custom == 3) - _this.createSun2(); - else if (_this.custom == 4) { - _this.begin = true; - } - else if (_this.custom == 5) - cc.director.loadScene("GameScene"); - }) - .start(); - } - else { - this.tip = this.dialog.getChildByName(name); - this.tip.active = true; - this.tip.opacity = 0; - cc.tween(this.tip) - .to(time, { opacity: 255 }) - .start(); - // cc.tween(tip) - // .to(time,{opacity:255}) - // .delay(delay) - // .to(time,{opacity:0}) - // .call(() =>{ - // this.custom += 1; - // if(type != 0) this.custom = 2; - // if( this.custom == 2) this.createSun1(); - // else if( this.custom == 3) this.createSun2(); - // else if( this.custom == 4) this.begin = true; - // else if( this.custom == 5) cc.director.loadScene("GameScene"); - // }) - // .start(); - } - }; - //创建太阳 - NewClass.prototype.createSun1 = function () { - var _this = this; - this.ball_Array = []; - this.Pos_Array.push(cc.v2(-250, -216), cc.v2(200, -115), cc.v2(-35, -500)); - var time1 = this.calculateDistance(this.ball.x, this.ball.y, this.Pos_Array[0].x, this.Pos_Array[0].y); - this.ball.opacity = 0; - cc.tween(this.ball) - .to(time1, { position: this.Pos_Array[0] }) - .call(function () { - _this.createBall(0, 0, 0, false); - }) - .delay(1) - .call(function () { - _this.startGuide(0); - }) - .start(); - }; - NewClass.prototype.beginClick = function () { - for (var i = 0; i < this.ball_Array.length; i++) { - this.ball_Array[i].getComponent("Sun").move = false; - } - }; - NewClass.prototype.clickBtn = function () { - cc.director.loadScene("GameScene"); - }; - NewClass.prototype.next = function () { - var _this = this; - var time = 0.5; - cc.tween(this.tip) - .to(time, { opacity: 0 }) - .call(function () { - _this.custom += 1; - // if(type != 0) this.custom = 2; - if (_this.custom == 2) - _this.createSun1(); - else if (_this.custom == 3) - _this.createSun2(); - else if (_this.custom == 4) - _this.begin = true; - else if (_this.custom == 5) - cc.director.loadScene("GameScene"); - }) - .start(); - }; - NewClass.prototype.createSun2 = function () { - var _this = this; - var time2 = this.calculateDistance(this.Pos_Array[0].x, this.Pos_Array[0].y, this.Pos_Array[1].x, this.Pos_Array[1].y); - var time3 = this.calculateDistance(this.Pos_Array[1].x, this.Pos_Array[1].y, this.Pos_Array[2].x, this.Pos_Array[2].y); - this.ball.opacity = 255; - this.createLine(cc.v2(this.ball.x, this.ball.y), cc.v2(this.Pos_Array[1].x, this.Pos_Array[1].y), 0.5); - cc.tween(this.ball) - .to(time2, { position: this.Pos_Array[1] }) - .call(function () { - _this.createBall(1, 0, 0, false); - }) - .delay(0.5) - .call(function () { - _this.createLine(cc.v2(_this.ball.x, _this.ball.y), cc.v2(_this.Pos_Array[2].x, _this.Pos_Array[2].y), 0.5); - }) - .to(time3, { position: this.Pos_Array[2] }) - .call(function () { - _this.createBall(2, 0, 0, false); - _this.ball.opacity = 0; - }) - .delay(0.2) - .call(function () { - _this.destroyLine(); - _this.startGuide(0); - }) - .start(); - }; - NewClass.prototype.createBall = function (number, color, speed, repeat) { - var ball = null; - ball = cc.instantiate(this.qiu1); - ball.parent = this.node.getChildByName("Sun"); - ball.zIndex = this.Pos_Array.length - number; - ball.setPosition(this.ball.x, this.ball.y); - ball.getComponent("Sun").init(number, color, speed, repeat); - ball.getComponent("Sun").move = true; - this.ball_Array.push(ball); - }; - NewClass.prototype.calculateDistance = function (x1, y1, x2, y2) { - var dx = x2 - x1; - var dy = y2 - y1; - var distance = Math.sqrt(dx * dx + dy * dy); - if (distance > 800) - distance = 800; - var time = distance / 800 * 0.8; - return time; - }; - //移动创建下一个太阳 - NewClass.prototype.moveSun = function () { - }; - //获胜 - NewClass.prototype.passLevel = function () { - var _this = this; - this.destroyLine(); - var timeArray = []; - var timeCount = 0; - var ball = this.ball_Array[0]; - for (var i = 1; i < this.ball_Array.length; i++) { - var time = this.calculateDistance(this.ball_Array[i].x, this.ball_Array[i].y, this.ball_Array[i - 1].x, this.ball_Array[i - 1].y); - timeArray.push(time); - } - var _loop_1 = function (k) { - setTimeout(function () { - cc.tween(ball) - .to(timeArray[k - 1], { x: _this.ball_Array[k].x, y: _this.ball_Array[k].y }) - .call(function () { - _this.ball_Array[k].active = false; - if (k == _this.ball_Array.length - 1) { - setTimeout(function () { - _this.ball.opacity = 255; - _this.ball.position = cc.v3(ball.x, ball.y, 0); - _this.ball.active = false; - _this.startGuide(0); - }, 200); - } - }) - .start(); - }, timeCount * 1000); - timeCount += (timeArray[k - 1] + 0.1); - }; - for (var k = 1; k < this.ball_Array.length; k++) { - _loop_1(k); - } - }; - //点击太阳执行方法 - NewClass.prototype.clickSun = function (data) { - var _this = this; - if (this.begin == true) { - if (data == this.clickNow) { - GameData_1.default._instance.AudioManager.playAudioButton(); - if (this.clickNow > 0) { - this.createLine(cc.v2(this.ball_Array[this.clickNow - 1].x, this.ball_Array[this.clickNow - 1].y), cc.v2(this.ball_Array[this.clickNow].x, this.ball_Array[this.clickNow].y), 0.2); - } - this.clickNow += 1; - GameData_1.default._instance.GM_INFO.total += 1; - setTimeout(function () { - if (_this.ball_Array[_this.clickNow - 1]) - _this.ball_Array[_this.clickNow - 1].getChildByName("guang").active = false; - }, 200); - if (this.clickNow == 3) { - var win_1 = this.node.getChildByName("Win"); - win_1.active = true; - win_1.setScale(0); - cc.tween(win_1) - .delay(0.4) - .to(0.01, { scale: 2.5 }) - .to(0.35, { scale: 1 }) - .delay(0.6) - .call(function () { - win_1.active = false; - setTimeout(function () { - _this.passLevel(); - }, 400); - }) - .start(); - } - } - else { - GameData_1.default._instance.AudioManager.playWarning(); - this.begin = false; - this.loseLevel(1); - var over = this.node.getChildByName("Over"); - cc.tween(over) - .to(0.25, { opacity: 255 }) - .delay(0.1) - .to(0.2, { opacity: 0 }) - .delay(0.1) - .to(0.15, { opacity: 255 }) - .delay(0.1) - .to(0.1, { opacity: 0 }) - .start(); - } - } - }; - NewClass.prototype.loseLevel = function (type) { - var _this = this; - this.destroyLine(); - var ball = this.ball_Array[0]; - var _loop_2 = function (k) { - cc.tween(this_1.ball_Array[k]) - .to(0.6, { x: ball.x, y: ball.y }) - .call(function () { - _this.ball_Array[k].active = false; - if (k == _this.ball_Array.length - 1) { - _this.ball.opacity = 0; - _this.ball.position = cc.v3(ball.x, ball.y, 0); - _this.clearSun(); - _this.custom = 1; - _this.startGuide(1); - } - }) - .start(); - }; - var this_1 = this; - for (var k = 1; k < this.ball_Array.length; k++) { - _loop_2(k); - } - }; - NewClass.prototype.clearSun = function () { - for (var k = 0; k < this.ball_Array.length; k++) { - this.ball_Array[k].removeFromParent(); - this.ball_Array[k] = null; - } - this.ball_Array = []; - }; - //获取时间戳 - NewClass.prototype.getTime = function () { - var timestamp = new Date().getTime(); - return timestamp; - }; - NewClass.prototype.destroyLine = function () { - for (var i = 0; i < this.node.getChildByName("Line").children.length; i++) { - if (this.node.getChildByName("Line").children[i]) { - this.node.getChildByName("Line").children[i].removeFromParent(); - this.node.getChildByName("Line").children[i] = null; - } - } - this.node.getChildByName("Line").removeAllChildren(); - }; - NewClass.prototype.createLine = function (start, end, time) { - var line = cc.instantiate(this.linePrefab); - line.parent = this.node.getChildByName("Line"); - line.setPosition(start.x, start.y); - var dx = end.x - start.x; - var dy = end.y - start.y; - var distance = Math.sqrt(dx * dx + dy * dy); - line.height = distance; - line.getComponent(cc.Sprite).fillRange = 0; - line.angle = -this.calculateAngle(start.x, start.y, end.x, end.y); - cc.tween(line.getComponent(cc.Sprite)) - .to(time, { fillRange: 1 }) - .start(); - }; - NewClass.prototype.calculateAngle = function (x1, y1, x2, y2) { - var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI - 90; - return -angle; - }; - NewClass.prototype.onEnable = function () { - Notification_1.Notification.on("clickSun", this.clickSun, this); - }; - NewClass.prototype.onDisable = function () { - Notification_1.Notification.off("clickSun", this.clickSun); - }; - __decorate([ - property(cc.Node) - ], NewClass.prototype, "dialog", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "ball", void 0); - __decorate([ - property(cc.Prefab) - ], NewClass.prototype, "qiu1", void 0); - __decorate([ - property(cc.Prefab) - ], NewClass.prototype, "linePrefab", void 0); - NewClass = __decorate([ - ccclass - ], NewClass); - return NewClass; -}(cc.Component)); -exports.default = NewClass; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHdWlkZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7QUFDbEYsdUNBQWtDO0FBQ2xDLCtDQUE4QztBQUN4QyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXFWQztRQW5WRyx3QkFBd0I7UUFFeEIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUV2QixVQUFJLEdBQVksSUFBSSxDQUFDO1FBRXJCLFVBQUksR0FBYyxJQUFJLENBQUM7UUFFdkIsZ0JBQVUsR0FBYyxJQUFJLENBQUM7O1FBMFU3QixpQkFBaUI7SUFDckIsQ0FBQztJQXBVRyxlQUFlO0lBRWYsd0JBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELHVCQUFJLEdBQUo7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELDZCQUFVLEdBQVYsVUFBVyxJQUFJO1FBQWYsaUJB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Q0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzdGLEdBQUcsQ0FBQyxDQUFDO1FBQ0wsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2xCLEVBQUUsQ0FBQyxLQUFLLEVBQUMsRUFBQyxRQUFRLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO2FBQ3RDLElBQUksQ0FBQztZQUNGLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLElBQUksQ0FBQztZQUNGLEtBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDN0YsR0FBRyxDQUFDLENBQUM7UUFDVCxDQUFDLENBQUM7YUFDRCxFQUFFLENBQUMsS0FBSyxFQUFDLEVBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQzthQUN0QyxJQUFJLENBQUM7WUFDRixLQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLEtBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsSUFBSSxDQUFDO1lB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QUMsRUFBQyxDQUFDO2FBQ3RCLEtBQUssRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVELGlDQUFjLEdBQWQsVUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3pCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFDLEVBQUUsRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDbEIsQ0FBQztJQUVELDJCQUFRLEdBQVI7UUFDSSwyQkFBWSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsNEJBQVMsR0FBVDtRQUNJLDJCQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQTlVRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzRDQUNLO0lBRXZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFFckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzswQ0FDRztJQUV2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO2dEQUNTO0lBVlosUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXFWNUI7SUFBRCxlQUFDO0NBclZELEFBcVZDLENBclZxQyxFQUFFLENBQUMsU0FBUyxHQXFWakQ7a0JBclZvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5pbXBvcnQgR2FtZURhdGEgZnJvbSAnLi9HYW1lRGF0YSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4vTm90aWZpY2F0aW9uJztcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGRpYWxvZzogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGJhbGw6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHFpdTE6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgbGluZVByZWZhYjogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIGNsaWNrTm93Om51bWJlcjtcclxuICAgIGN1c3RvbTogbnVtYmVyO1xyXG4gICAgUG9zX0FycmF5OiBhbnk7XHJcbiAgICBiYWxsX0FycmF5OiBhbnk7XHJcbiAgICBiZWdpbjogYm9vbGVhbjtcclxuICAgIHRpcDogY2MuTm9kZTtcclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLmN1c3RvbSA9IDE7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgICAgdGhpcy5zdGFydEd1aWRlKDApO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoKXtcclxuICAgICAgICB0aGlzLmJhbGwuekluZGV4ID0gMTAwO1xyXG4gICAgICAgIHRoaXMuUG9zX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5iYWxsX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5iZWdpbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2xpY2tOb3cgPSAwO1xyXG4gICAgICAgIHRoaXMudGlwID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydEd1aWRlKHR5cGUpe1xyXG4gICAgICAgIGxldCBudW0gPSB0aGlzLmN1c3RvbTtcclxuICAgICAgICBsZXQgdGltZSA9IDAuNTtcclxuICAgICAgICBsZXQgZGVsYXkgPSAxLjU7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcInRpcFwiICsgbnVtO1xyXG5cclxuICAgICAgICBpZih0eXBlIT0wKXtcclxuICAgICAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlKVxyXG4gICAgICAgICAgICAudG8odGltZSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlICE9IDApIHRoaXMuY3VzdG9tID0gMjtcclxuICAgICAgICAgICAgICAgIGlmKCB0aGlzLmN1c3RvbSA9PSAyKSAgdGhpcy5jcmVhdGVTdW4xKCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSAzKSAgdGhpcy5jcmVhdGVTdW4yKCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSA0KXtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iZWdpbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9ICBcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoIHRoaXMuY3VzdG9tID09IDUpIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy50aXAgPSB0aGlzLmRpYWxvZy5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICAgICAgdGhpcy50aXAuYWN0aXZlID0gdHJ1ZTsgdGhpcy50aXAub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMudGlwKVxyXG4gICAgICAgICAgICAudG8odGltZSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgLy8gY2MudHdlZW4odGlwKVxyXG4gICAgICAgICAgICAvLyAudG8odGltZSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAvLyAuZGVsYXkoZGVsYXkpXHJcbiAgICAgICAgICAgIC8vIC50byh0aW1lLHtvcGFjaXR5OjB9KVxyXG4gICAgICAgICAgICAvLyAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuY3VzdG9tICs9IDE7XHJcbiAgICAgICAgICAgIC8vICAgICBpZih0eXBlICE9IDApIHRoaXMuY3VzdG9tID0gMjtcclxuICAgICAgICAgICAgLy8gICAgIGlmKCB0aGlzLmN1c3RvbSA9PSAyKSAgdGhpcy5jcmVhdGVTdW4xKCk7XHJcbiAgICAgICAgICAgIC8vICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSAzKSAgdGhpcy5jcmVhdGVTdW4yKCk7XHJcbiAgICAgICAgICAgIC8vICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSA0KSAgdGhpcy5iZWdpbiA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSA1KSBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICBcclxuICAgICAgICAgICAgLy8gfSlcclxuICAgICAgICAgICAgLy8gLnN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC8v5Yib5bu65aSq6ZizXHJcbiAgICBjcmVhdGVTdW4xKCl7XHJcbiAgICAgICAgdGhpcy5iYWxsX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5Qb3NfQXJyYXkucHVzaChjYy52MigtMjUwLC0yMTYpLGNjLnYyKDIwMCwtMTE1KSxjYy52MigtMzUsLTUwMCkpO1xyXG4gICAgICAgIGxldCB0aW1lMSA9IHRoaXMuY2FsY3VsYXRlRGlzdGFuY2UodGhpcy5iYWxsLngsdGhpcy5iYWxsLnksdGhpcy5Qb3NfQXJyYXlbMF0ueCx0aGlzLlBvc19BcnJheVswXS55KVxyXG4gICAgICAgIHRoaXMuYmFsbC5vcGFjaXR5ID0gMDtcclxuICAgICAgICBjYy50d2Vlbih0aGlzLmJhbGwpXHJcbiAgICAgICAgLnRvKHRpbWUxLHtwb3NpdGlvbjp0aGlzLlBvc19BcnJheVswXX0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQmFsbCgwLDAsMCxmYWxzZSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZGVsYXkoMSlcclxuICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgdGhpcy5zdGFydEd1aWRlKDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgYmVnaW5DbGljaygpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJTdW5cIikubW92ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGlja0J0bigpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBuZXh0KCl7XHJcbiAgICAgICAgbGV0IHRpbWUgPSAwLjU7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy50aXApXHJcbiAgICAgICAgLnRvKHRpbWUse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tICs9IDE7XHJcbiAgICAgICAgICAgIC8vIGlmKHR5cGUgIT0gMCkgdGhpcy5jdXN0b20gPSAyO1xyXG4gICAgICAgICAgICBpZiggdGhpcy5jdXN0b20gPT0gMikgIHRoaXMuY3JlYXRlU3VuMSgpO1xyXG4gICAgICAgICAgICBlbHNlIGlmKCB0aGlzLmN1c3RvbSA9PSAzKSAgdGhpcy5jcmVhdGVTdW4yKCk7XHJcbiAgICAgICAgICAgIGVsc2UgaWYoIHRoaXMuY3VzdG9tID09IDQpICB0aGlzLmJlZ2luID0gdHJ1ZTtcclxuICAgICAgICAgICAgZWxzZSBpZiggdGhpcy5jdXN0b20gPT0gNSkgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG5cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVN1bjIoKXtcclxuICAgICAgICBsZXQgdGltZTIgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMuUG9zX0FycmF5WzBdLngsdGhpcy5Qb3NfQXJyYXlbMF0ueSx0aGlzLlBvc19BcnJheVsxXS54LHRoaXMuUG9zX0FycmF5WzFdLnkpXHJcbiAgICAgICAgbGV0IHRpbWUzID0gdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLlBvc19BcnJheVsxXS54LHRoaXMuUG9zX0FycmF5WzFdLnksdGhpcy5Qb3NfQXJyYXlbMl0ueCx0aGlzLlBvc19BcnJheVsyXS55KVxyXG4gICAgICAgIHRoaXMuYmFsbC5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIHRoaXMuY3JlYXRlTGluZShjYy52Mih0aGlzLmJhbGwueCx0aGlzLmJhbGwueSksY2MudjIodGhpcy5Qb3NfQXJyYXlbMV0ueCx0aGlzLlBvc19BcnJheVsxXS55KSxcclxuICAgICAgICAwLjUpO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbClcclxuICAgICAgICAudG8odGltZTIse3Bvc2l0aW9uOnRoaXMuUG9zX0FycmF5WzFdfSlcclxuICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVCYWxsKDEsMCwwLGZhbHNlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5kZWxheSgwLjUpXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTGluZShjYy52Mih0aGlzLmJhbGwueCx0aGlzLmJhbGwueSksY2MudjIodGhpcy5Qb3NfQXJyYXlbMl0ueCx0aGlzLlBvc19BcnJheVsyXS55KSxcclxuICAgICAgICAgICAgMC41KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC50byh0aW1lMyx7cG9zaXRpb246dGhpcy5Qb3NfQXJyYXlbMl19KVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUJhbGwoMiwwLDAsZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmJhbGwub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZGVsYXkoMC4yKVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lMaW5lKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRHdWlkZSgwKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuXHJcbiAgICBjcmVhdGVCYWxsKG51bWJlcixjb2xvcixzcGVlZCxyZXBlYXQpe1xyXG4gICAgICAgIGxldCBiYWxsID0gbnVsbDtcclxuICAgICAgICBiYWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5xaXUxKTtcclxuICAgICAgICBiYWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlN1blwiKTtcclxuICAgICAgICBiYWxsLnpJbmRleCA9IHRoaXMuUG9zX0FycmF5Lmxlbmd0aCAtIG51bWJlcjtcclxuICAgICAgICBiYWxsLnNldFBvc2l0aW9uKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55KTtcclxuICAgICAgICBiYWxsLmdldENvbXBvbmVudChcIlN1blwiKS5pbml0KG51bWJlcixjb2xvcixzcGVlZCxyZXBlYXQpO1xyXG4gICAgICAgIGJhbGwuZ2V0Q29tcG9uZW50KFwiU3VuXCIpLm1vdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYmFsbF9BcnJheS5wdXNoKGJhbGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZURpc3RhbmNlKHgxLCB5MSwgeDIsIHkyKSB7XHJcbiAgICAgICAgY29uc3QgZHggPSB4MiAtIHgxO1xyXG4gICAgICAgIGNvbnN0IGR5ID0geTIgLSB5MTtcclxuICAgICAgICB2YXIgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHgqZHggKyBkeSpkeSk7XHJcbiAgICAgICAgaWYoZGlzdGFuY2UgPiA4MDApIGRpc3RhbmNlID0gODAwO1xyXG4gICAgICAgIGNvbnN0IHRpbWUgPSBkaXN0YW5jZS84MDAgKiAwLjg7XHJcbiAgICAgICAgcmV0dXJuIHRpbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy/np7vliqjliJvlu7rkuIvkuIDkuKrlpKrpmLNcclxuICAgIG1vdmVTdW4oKXtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/ojrfog5xcclxuICAgIHBhc3NMZXZlbCgpe1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUxpbmUoKTtcclxuICAgICAgICBsZXQgdGltZUFycmF5ID0gW107XHJcbiAgICAgICAgbGV0IHRpbWVDb3VudCA9IDA7XHJcbiAgICAgICAgbGV0IGJhbGwgPSB0aGlzLmJhbGxfQXJyYXlbMF07XHJcbiAgICAgICAgZm9yKGxldCBpPTE7IGk8IHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGxldCB0aW1lID0gdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLmJhbGxfQXJyYXlbaV0ueCx0aGlzLmJhbGxfQXJyYXlbaV0ueSxcclxuICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpLTFdLngsdGhpcy5iYWxsX0FycmF5W2ktMV0ueSk7XHJcbiAgICAgICAgICAgIHRpbWVBcnJheS5wdXNoKHRpbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IobGV0IGs9MTsgazwgdGhpcy5iYWxsX0FycmF5Lmxlbmd0aDsgaysrKXtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy50d2VlbihiYWxsKVxyXG4gICAgICAgICAgICAgICAgLnRvKHRpbWVBcnJheVtrLTFdLHt4OnRoaXMuYmFsbF9BcnJheVtrXS54LHk6dGhpcy5iYWxsX0FycmF5W2tdLnl9KVxyXG4gICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2tdLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGsgPT0gdGhpcy5iYWxsX0FycmF5Lmxlbmd0aC0xKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbC5wb3NpdGlvbiA9IGNjLnYzKGJhbGwueCxiYWxsLnksMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0R3VpZGUoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDIwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICB9LCB0aW1lQ291bnQqMTAwMCk7XHJcbiAgICAgICAgICAgIHRpbWVDb3VudCArPSAodGltZUFycmF5W2stMV0rMC4xKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/ngrnlh7vlpKrpmLPmiafooYzmlrnms5VcclxuICAgIGNsaWNrU3VuKGRhdGEpe1xyXG4gICAgICAgIGlmKHRoaXMuYmVnaW4gPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGlmKGRhdGEgPT0gdGhpcy5jbGlja05vdyl7XHJcbiAgICAgICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuQXVkaW9NYW5hZ2VyLnBsYXlBdWRpb0J1dHRvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jbGlja05vdyA+IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTGluZShjYy52Mih0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXS54LHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93LTFdLnkpLFxyXG4gICAgICAgICAgICAgICAgICAgIGNjLnYyKHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93XS54LHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93XS55KSxcclxuICAgICAgICAgICAgICAgICAgICAwLjIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jbGlja05vdyArPSAxO1xyXG4gICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwgKz0gMTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93LTFdKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXS5nZXRDaGlsZEJ5TmFtZShcImd1YW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSwgMjAwKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jbGlja05vdyA9PSAzKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgd2luID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2luXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbi5hY3RpdmUgPSB0cnVlOyB3aW4uc2V0U2NhbGUoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4od2luKVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMDEse3NjYWxlOjIuNX0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMzUse3NjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjYpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhc3NMZXZlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCA0MDApO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5BdWRpb01hbmFnZXIucGxheVdhcm5pbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmVnaW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvc2VMZXZlbCgxKVxyXG4gICAgICAgICAgICAgICAgbGV0IG92ZXIgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJPdmVyXCIpO1xyXG4gICAgICAgICAgICAgICAgY2MudHdlZW4ob3ZlcilcclxuICAgICAgICAgICAgICAgIC50bygwLjI1LHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMix7b3BhY2l0eTowfSlcclxuICAgICAgICAgICAgICAgIC5kZWxheSgwLjEpXHJcbiAgICAgICAgICAgICAgICAudG8oMC4xNSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAgICAgLmRlbGF5KDAuMSlcclxuICAgICAgICAgICAgICAgIC50bygwLjEse29wYWNpdHk6MH0pXHJcbiAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsb3NlTGV2ZWwodHlwZSl7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95TGluZSgpO1xyXG4gICAgICAgIGxldCBiYWxsID0gdGhpcy5iYWxsX0FycmF5WzBdO1xyXG4gICAgICAgIGZvcihsZXQgaz0xOyBrPCB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBrKyspe1xyXG4gICAgICAgICAgICBjYy50d2Vlbih0aGlzLmJhbGxfQXJyYXlba10pXHJcbiAgICAgICAgICAgIC50bygwLjYse3g6YmFsbC54LHk6YmFsbC55fSlcclxuICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlba10uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZihrID09IHRoaXMuYmFsbF9BcnJheS5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbC5wb3NpdGlvbiA9IGNjLnYzKGJhbGwueCxiYWxsLnksMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhclN1bigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tID0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0R3VpZGUoMSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyU3VuKCl7XHJcbiAgICAgICAgZm9yKGxldCBrPTA7IGs8IHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7IGsrKyl7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYmFsbF9BcnJheSA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIC8v6I635Y+W5pe26Ze05oizXHJcbiAgICBnZXRUaW1lKCl7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95TGluZSgpIHtcclxuICAgICAgICBmb3IobGV0IGkgPTA7IGk8IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikuY2hpbGRyZW4ubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikuY2hpbGRyZW5baV0pe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKS5jaGlsZHJlbltpXS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpLmNoaWxkcmVuW2ldID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlTGluZShzdGFydCxlbmQsdGltZSl7XHJcbiAgICAgICAgbGV0IGxpbmUgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLmxpbmVQcmVmYWIpO1xyXG4gICAgICAgIGxpbmUucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKTtcclxuICAgICAgICBsaW5lLnNldFBvc2l0aW9uKHN0YXJ0Lngsc3RhcnQueSk7XHJcbiAgICBcclxuICAgICAgICBjb25zdCBkeCA9IGVuZC54IC0gc3RhcnQueDtcclxuICAgICAgICBjb25zdCBkeSA9IGVuZC55IC0gc3RhcnQueTtcclxuICAgICAgICB2YXIgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHgqZHggKyBkeSpkeSk7XHJcbiAgICAgICAgbGluZS5oZWlnaHQgPSBkaXN0YW5jZTtcclxuICAgICAgICBsaW5lLmdldENvbXBvbmVudChjYy5TcHJpdGUpLmZpbGxSYW5nZSA9IDA7XHJcbiAgICAgICAgbGluZS5hbmdsZSA9IC10aGlzLmNhbGN1bGF0ZUFuZ2xlKHN0YXJ0Lngsc3RhcnQueSxlbmQueCxlbmQueSk7XHJcbiAgICAgICAgY2MudHdlZW4obGluZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKSlcclxuICAgICAgICAudG8odGltZSx7ZmlsbFJhbmdlOjF9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjYWxjdWxhdGVBbmdsZSh4MSwgeTEsIHgyLCB5Mikge1xyXG4gICAgICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIoeTIteTEseDIteDEpKjE4MCAvIE1hdGguUEkgLSA5MDtcclxuICAgICAgICByZXR1cm4gLWFuZ2xlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRW5hYmxlICgpIHtcclxuICAgICAgICBOb3RpZmljYXRpb24ub24oXCJjbGlja1N1blwiLCB0aGlzLmNsaWNrU3VuLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRpc2FibGUgKCkge1xyXG4gICAgICAgIE5vdGlmaWNhdGlvbi5vZmYoXCJjbGlja1N1blwiLCB0aGlzLmNsaWNrU3VuKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/test.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'f7f5dfmKidObZiMLtuBdAiq', 'test'); -// Script/test.ts - -if (this.level == 1) { - var data = { x: -200, y: -380, time: 0, timeCount: 0 }; - var timeCount = this.timeCount + (0.8 - this.calculateDistance(this.ball.x, this.ball.y, -200, -380)); - var time = this.calculateDistance(this.ball.x, this.ball.y, -200, -380) + timeCount; - data = { x: -200, y: -380, time: time, timeCount: timeCount }; - this.now_Array.push(data); - timeCount = this.timeCount + (0.8 - this.calculateDistance(this.ball.x, this.ball.y, -250, -300)); - time = this.calculateDistance(this.now_Array[this.now_Array.length - 1].x, this.now_Array[this.now_Array.length - 1].y, -250, -300) + timeCount; - data = { x: -250, y: -300, time: time, timeCount: timeCount }; - this.now_Array.push(data); - timeCount = this.timeCount + (0.8 - this.calculateDistance(this.ball.x, this.ball.y, -300, 500)); - time = this.calculateDistance(this.now_Array[this.now_Array.length - 1].x, this.now_Array[this.now_Array.length - 1].y, -300, 500) + timeCount; - data = { x: -300, y: 500, time: time, timeCount: timeCount }; - this.now_Array.push(data); - timeCount = this.timeCount + (0.8 - this.calculateDistance(this.ball.x, this.ball.y, 208, 280)); - time = this.calculateDistance(this.now_Array[this.now_Array.length - 1].x, this.now_Array[this.now_Array.length - 1].y, 208, 280) + timeCount; - data = { x: 208, y: 280, time: time, timeCount: timeCount }; - this.now_Array.push(data); - timeCount = this.timeCount + (0.8 - this.calculateDistance(this.ball.x, this.ball.y, 208, -280)); - time = this.calculateDistance(this.now_Array[this.now_Array.length - 1].x, this.now_Array[this.now_Array.length - 1].y, 208, -280) + timeCount; - data = { x: 208, y: -280, time: time, timeCount: timeCount }; - this.now_Array.push(data); -} - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFx0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUM7SUFDZixJQUFJLElBQUksR0FBRyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUM7SUFDOUMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLFNBQVMsQ0FBQztJQUMvRSxJQUFJLEdBQUcsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFCLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0YsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFHLENBQUMsR0FBQyxTQUFTLENBQUM7SUFDbkUsSUFBSSxHQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxQixTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RixJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNuRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxHQUFHLENBQUMsR0FBQyxTQUFTLENBQUM7SUFDbEUsSUFBSSxHQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUIsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNGLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ25FLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLENBQUMsR0FBQyxTQUFTLENBQUM7SUFDakUsSUFBSSxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFCLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVGLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ25FLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUcsQ0FBQyxHQUFDLFNBQVMsQ0FBQztJQUNsRSxJQUFJLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUM3QiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImlmKHRoaXMubGV2ZWwgPT0gMSl7XHJcbiAgICBsZXQgZGF0YSA9IHt4Oi0yMDAseTotMzgwLHRpbWU6MCx0aW1lQ291bnQ6MH07XHJcbiAgICBsZXQgdGltZUNvdW50ID0gdGhpcy50aW1lQ291bnQgKyAoMC44LXRoaXMuY2FsY3VsYXRlRGlzdGFuY2UodGhpcy5iYWxsLngsdGhpcy5iYWxsLnksLTIwMCwtMzgwKSk7XHJcbiAgICBsZXQgdGltZSA9IHRoaXMuY2FsY3VsYXRlRGlzdGFuY2UodGhpcy5iYWxsLngsdGhpcy5iYWxsLnksLTIwMCwtMzgwKSt0aW1lQ291bnQ7XHJcbiAgICBkYXRhID0ge3g6LTIwMCx5Oi0zODAsdGltZTp0aW1lLHRpbWVDb3VudDp0aW1lQ291bnR9O1xyXG4gICAgdGhpcy5ub3dfQXJyYXkucHVzaChkYXRhKTtcclxuXHJcbiAgICB0aW1lQ291bnQgPSB0aGlzLnRpbWVDb3VudCArICgwLjgtdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLmJhbGwueCx0aGlzLmJhbGwueSwtMjUwLC0zMDApKTtcclxuICAgIHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS54LFxyXG4gICAgICAgIHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS55LC0yNTAsLTMwMCkrdGltZUNvdW50O1xyXG4gICAgZGF0YSA9IHt4Oi0yNTAseTotMzAwLHRpbWU6dGltZSx0aW1lQ291bnQ6dGltZUNvdW50fTtcclxuICAgIHRoaXMubm93X0FycmF5LnB1c2goZGF0YSk7XHJcblxyXG4gICAgdGltZUNvdW50ID0gdGhpcy50aW1lQ291bnQgKyAoMC44LXRoaXMuY2FsY3VsYXRlRGlzdGFuY2UodGhpcy5iYWxsLngsdGhpcy5iYWxsLnksLTMwMCw1MDApKTtcclxuICAgIHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS54LFxyXG4gICAgICAgIHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS55LC0zMDAsNTAwKSt0aW1lQ291bnQ7XHJcbiAgICBkYXRhID0ge3g6LTMwMCx5OjUwMCx0aW1lOnRpbWUsdGltZUNvdW50OnRpbWVDb3VudH07XHJcbiAgICB0aGlzLm5vd19BcnJheS5wdXNoKGRhdGEpO1xyXG5cclxuICAgIHRpbWVDb3VudCA9IHRoaXMudGltZUNvdW50ICsgKDAuOC10aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55LDIwOCwyODApKTtcclxuICAgIHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS54LFxyXG4gICAgICAgIHRoaXMubm93X0FycmF5W3RoaXMubm93X0FycmF5Lmxlbmd0aC0xXS55LDIwOCwyODApK3RpbWVDb3VudDtcclxuICAgIGRhdGEgPSB7eDoyMDgseToyODAsdGltZTp0aW1lLHRpbWVDb3VudDp0aW1lQ291bnR9O1xyXG4gICAgdGhpcy5ub3dfQXJyYXkucHVzaChkYXRhKTtcclxuXHJcbiAgICB0aW1lQ291bnQgPSB0aGlzLnRpbWVDb3VudCArICgwLjgtdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLmJhbGwueCx0aGlzLmJhbGwueSwyMDgsLTI4MCkpO1xyXG4gICAgdGltZSA9IHRoaXMuY2FsY3VsYXRlRGlzdGFuY2UodGhpcy5ub3dfQXJyYXlbdGhpcy5ub3dfQXJyYXkubGVuZ3RoLTFdLngsXHJcbiAgICAgICAgdGhpcy5ub3dfQXJyYXlbdGhpcy5ub3dfQXJyYXkubGVuZ3RoLTFdLnksMjA4LC0yODApK3RpbWVDb3VudDtcclxuICAgIGRhdGEgPSB7eDoyMDgseTotMjgwLHRpbWU6dGltZSx0aW1lQ291bnQ6dGltZUNvdW50fTtcclxuICAgIHRoaXMubm93X0FycmF5LnB1c2goZGF0YSk7XHJcbn0iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Sun.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '4be67sdkexCyqLl0NHd9N1f', 'Sun'); -// Script/Sun.ts - -"use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Notification_1 = require("./Notification"); -var NewClass = /** @class */ (function (_super) { - __extends(NewClass, _super); - function NewClass() { - return _super !== null && _super.apply(this, arguments) || this; - } - // LIFE-CYCLE CALLBACKS: - // onLoad () {} - NewClass.prototype.start = function () { - this.touch = true; - this.move = false; - this._color = 0; - this._speed = 0; - var shan = this.node.getChildByName("shan"); - cc.tween(shan) - .repeatForever(cc.tween() - .to(1, { opacity: 0, scale: 0.5, }) - .delay(0.2) - .to(1, { opacity: 255, scale: 1.2 }) - .delay(0.5)) - .start(); - }; - NewClass.prototype.init = function (_id, color, speed, repeat) { - this.id_Number = _id; - this._color = color; - this._speed = speed; - this._repeat = repeat; - }; - NewClass.prototype.showNumber = function (type) { - this.node.getChildByName("number").active = type; - if (type == true) - this.node.getChildByName("number").getComponent(cc.Label).string = this.id_Number + ""; - }; - NewClass.prototype.clickBtn = function () { - var temp = this.node.parent.parent.name; - // console.log(temp,this.move,this.touch); - if (this.move == false && this.touch == true) { - if (this.node.parent.parent.name == "GameNode") { - if (this.node.parent.parent.getComponent("GameManager").begin == true) { - cc.tween(this.node.getChildByName("action")) - .to(0.5, { opacity: 0, scale: 1.8 }) - .start(); - cc.tween(this.node) - .to(0.3, { scale: 1.3 }) - .to(0.3, { scale: 1 }) - .start(); - this.touch = false; - this.node.zIndex = -1; - Notification_1.Notification.emit("clickSun", this.id_Number); - } - } - else { - this.touch = false; - this.node.zIndex = -1; - Notification_1.Notification.emit("clickSun", this.id_Number); - } - } - }; - NewClass.prototype.clickBtn2 = function () { - if (this.touch == true && this.node.parent.parent.getComponent("GuideManager").begin == true) { - this.touch = false; - this.node.zIndex = -1; - Notification_1.Notification.emit("clickSun", this.id_Number); - } - }; - NewClass.prototype.update = function (dt) { - }; - NewClass = __decorate([ - ccclass - ], NewClass); - return NewClass; -}(cc.Component)); -exports.default = NewClass; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTdW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUUsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUMsK0NBQThDO0FBRzlDO0lBQXNDLDRCQUFZO0lBQWxEOztJQWlGQSxDQUFDO0lBekVHLHdCQUF3QjtJQUV4QixlQUFlO0lBRWYsd0JBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ2IsYUFBYSxDQUNWLEVBQUUsQ0FBQyxLQUFLLEVBQUU7YUFDVCxFQUFFLENBQUMsQ0FBQyxFQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsR0FBRyxHQUFFLENBQUM7YUFDNUIsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLEVBQUUsQ0FBQyxDQUFDLEVBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxHQUFHLEVBQUMsQ0FBQzthQUM3QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQ2Q7YUFDQSxLQUFLLEVBQUUsQ0FBQztJQUViLENBQUM7SUFFRCx1QkFBSSxHQUFKLFVBQUssR0FBRyxFQUFDLEtBQUssRUFB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QUFDO0lBaEZnQixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBaUY1QjtJQUFELGVBQUM7Q0FqRkQsQUFpRkMsQ0FqRnFDLEVBQUUsQ0FBQyxTQUFTLEdBaUZqRDtrQkFqRm9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gJy4vR2FtZU1hbmFnZXInO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuL05vdGlmaWNhdGlvbic7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgaWRfTnVtYmVyOm51bWJlclxyXG4gICAgX3NwZWVkOm51bWJlclxyXG4gICAgX2NvbG9yOm51bWJlclxyXG4gICAgdG91Y2g6Ym9vbGVhblxyXG4gICAgX3JlcGVhdDpib29sZWFuXHJcbiAgICBtb3ZlOmJvb2xlYW5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLnRvdWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1vdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9jb2xvciA9IDA7XHJcbiAgICAgICAgdGhpcy5fc3BlZWQgPSAwO1xyXG4gICAgICAgIHZhciBzaGFuID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwic2hhblwiKTtcclxuXHJcbiAgICAgICAgY2MudHdlZW4oc2hhbilcclxuICAgICAgICAucmVwZWF0Rm9yZXZlcihcclxuICAgICAgICAgICAgY2MudHdlZW4oKVxyXG4gICAgICAgICAgICAudG8oMSx7b3BhY2l0eTowLHNjYWxlOjAuNSx9KVxyXG4gICAgICAgICAgICAuZGVsYXkoMC4yKVxyXG4gICAgICAgICAgICAudG8oMSx7b3BhY2l0eToyNTUsc2NhbGU6MS4yfSlcclxuICAgICAgICAgICAgLmRlbGF5KDAuNSlcclxuICAgICAgICApXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoX2lkLGNvbG9yLHNwZWVkLHJlcGVhdCl7XHJcbiAgICAgICAgdGhpcy5pZF9OdW1iZXIgID0gX2lkO1xyXG4gICAgICAgIHRoaXMuX2NvbG9yID0gY29sb3I7XHJcbiAgICAgICAgdGhpcy5fc3BlZWQgPSBzcGVlZDtcclxuICAgICAgICB0aGlzLl9yZXBlYXQgPSByZXBlYXQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd051bWJlcih0eXBlKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1iZXJcIikuYWN0aXZlID0gdHlwZTtcclxuICAgICAgICBpZih0eXBlID09IHRydWUpXHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bWJlclwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuaWRfTnVtYmVyICsgXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBjbGlja0J0bigpe1xyXG4gICAgICAgIHZhciB0ZW1wID0gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQubmFtZTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0ZW1wLHRoaXMubW92ZSx0aGlzLnRvdWNoKTtcclxuICAgICAgICBpZiggdGhpcy5tb3ZlID09IGZhbHNlICYmIHRoaXMudG91Y2ggPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQucGFyZW50Lm5hbWUgPT0gXCJHYW1lTm9kZVwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpLmJlZ2luID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImFjdGlvblwiKSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC41LHtvcGFjaXR5OjAsc2NhbGU6MS44fSlcclxuICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMyx7c2NhbGU6MS4zfSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC4zLHtzY2FsZToxfSlcclxuICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnpJbmRleCA9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbi5lbWl0KFwiY2xpY2tTdW5cIix0aGlzLmlkX051bWJlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMudG91Y2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSAtMTtcclxuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbi5lbWl0KFwiY2xpY2tTdW5cIix0aGlzLmlkX051bWJlcik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrQnRuMigpe1xyXG4gICAgICAgIGlmKCB0aGlzLnRvdWNoID09IHRydWUgJiYgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiR3VpZGVNYW5hZ2VyXCIpLmJlZ2luID09IHRydWUpe1xyXG4gICAgICAgICAgICB0aGlzLnRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS56SW5kZXggPSAtMTtcclxuICAgICAgICAgICAgTm90aWZpY2F0aW9uLmVtaXQoXCJjbGlja1N1blwiLHRoaXMuaWRfTnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG4gICAgfVxyXG59XHJcbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDdHJsRmx1eGF5VGV4dHVyZS5qcyJdLCJuYW1lcyI6WyJjYyIsIkNsYXNzIiwiQ29tcG9uZW50IiwicHJvcGVydGllcyIsIm1fZGVsYXlUaW1lIiwibV9mbHV4YXlUaW1lIiwibV9pbnRlcnZhbFRpbWUiLCJtX3NjYWxlIiwibV9hbmdsZSIsIm1fcmV2aXNlU3RhcnRUaW1lIiwibV9yZXZpc2VUaW1lU2NhbGUiLCJjdG9yIiwiX3RpbWUiLCJvbkxvYWQiLCJzcHJpdGUiLCJub2RlIiwiZ2V0Q29tcG9uZW50IiwiU3ByaXRlIiwiX21hdGVyaWFsIiwiZ2V0TWF0ZXJpYWwiLCJzZXRQcm9wZXJ0eSIsInJlZnJlc2hTcHJpdGVGcmFtZURhdGEiLCJ1cGRhdGUiLCJkdCIsInVfdGltZSIsIm1hdGVyaWFsIiwiZnJhbWUiLCJzcHJpdGVGcmFtZSIsImwiLCJ1diIsInIiLCJiIiwidCIsInVfdXZPZmZzZXQiLCJWZWM0IiwidV91dlJvdGF0ZWQiLCJpc1JvdGF0ZWQiLCJnZXRQcm9wZXJ0eSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQUEsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDTCxhQUFTRCxFQUFFLENBQUNFLFNBRFA7QUFHTEMsRUFBQUEsVUFBVSxFQUFFO0FBQ1JDLElBQUFBLFdBQVcsRUFBRTtBQUNULGlCQUFTO0FBREEsS0FETDtBQUlSQyxJQUFBQSxZQUFZLEVBQUU7QUFDVixpQkFBUztBQURDLEtBSk47QUFPUkMsSUFBQUEsY0FBYyxFQUFFO0FBQ1osaUJBQVM7QUFERyxLQVBSO0FBVVJDLElBQUFBLE9BQU8sRUFBRTtBQUNMLGlCQUFTO0FBREosS0FWRDtBQWFSQyxJQUFBQSxPQUFPLEVBQUU7QUFDTCxpQkFBUztBQURKLEtBYkQ7QUFnQlJDLElBQUFBLGlCQUFpQixFQUFDO0FBQ2QsaUJBQVM7QUFESyxLQWhCVjtBQW1CUkMsSUFBQUEsaUJBQWlCLEVBQUM7QUFDZCxpQkFBUztB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QXdDQyxTQUEzQyxFQUNBO0FBQ0liLFFBQUFBLFFBQVEsQ0FBQ0wsV0FBVCxDQUFxQixhQUFyQixFQUFvQ2UsV0FBcEM7QUFDSDtBQUNKO0FBQ0o7QUExRkksQ0FBVCIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXG5jYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogY2MuQ29tcG9uZW50LFxuXG4gICAgcHJvcGVydGllczoge1xuICAgICAgICBtX2RlbGF5VGltZToge1xuICAgICAgICAgICAgZGVmYXVsdDogMCwgXG4gICAgICAgIH0sXG4gICAgICAgIG1fZmx1eGF5VGltZToge1xuICAgICAgICAgICAgZGVmYXVsdDogMSwgXG4gICAgICAgIH0sXG4gICAgICAgIG1faW50ZXJ2YWxUaW1lOiB7XG4gICAgICAgICAgICBkZWZhdWx0OiAxLCBcbiAgICAgICAgfSxcbiAgICAgICAgbV9zY2FsZToge1xuICAgICAgICAgICAgZGVmYXVsdDogMSwgXG4gICAgICAgIH0sXG4gICAgICAgIG1fYW5nbGU6IHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IDAsIFxuICAgICAgICB9LFxuICAgICAgICBtX3JldmlzZVN0YXJ0VGltZTp7XG4gICAgICAgICAgICBkZWZhdWx0OiAwLCBcbiAgICAgICAgfSxcbiAgICAgICAgbV9yZXZpc2VUaW1lU2NhbGU6e1xuICAgICAgICAgICAgZGVmYXVsdDogMSwgXG4gICAgICAgIH0sXG4gICAgfSxcblxuICAgIGN0b3IoKXtcbiAgICAgICAgdGhpcy5fdGltZSA9IDA7XG4gICAgfSxcbiAgICBvbkxvYWQgKCkge1xuICAgICAgICB0aGlzLl90aW1lIC09IHRoaXMubV9kZWxheVRpbWU7XG5cbiAgICAgICAgbGV0IHNwcml0ZSA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcbiAgICAgICAgdGhpcy5fbWF0ZXJpYWwgPSBzcHJpdGUuZ2V0TWF0ZXJpYWwoMCk7XG4gICAgICAgIHRoaXMuX21hdGVyaWFsLnNldFByb3BlcnR5KFwidV9zY2FsZVwiLCB0aGlzLm1fc2NhbGUpO1xuICAgICAgICB0aGlzLl9tYXRlcmlhbC5zZXRQcm9wZXJ0eShcInVfYW5nbGVcIiwgdGhpcy5tX2FuZ2xlKTtcblxuICAgICAgICB0aGlzLnJlZnJlc2hTcHJpdGVGcmFtZURhdGEoKTtcbiAgICB9LFxuXG4gICAgdXBkYXRlKGR0KSB7XG4gICAgICAgIGlmICh0aGlzLl90aW1lID4gKHRoaXMubV9mbHV4YXlUaW1lICsgdGhpcy5tX2ludGVydmFsVGltZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpbWUgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHVfdGltZSA9IHRoaXMuX3RpbWUvdGhpcy5tX2ZsdXhheVRpbWU7XG4gICAgICAgIGlmKHRoaXMuX3RpbWUgPnRoaXMubV9mbHV4YXlUaW1lKVxuICAgICAgICB7XG4gICAgICAgICAgICB1X3RpbWUgPSAxKygodGhpcy5fdGltZS10aGlzLm1fZmx1eGF5VGltZSkvdGhpcy5tX2ludGVydmFsVGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYodGhpcy5tX3JldmlzZVRpbWVTY2FsZSAhPSBudWxsICYmIHRoaXMubV9yZXZpc2VTdGFydFRpbWUgIT0gbnVsbClcbiAgICAgICAge1xuICAgICAgICAgICAgdV90aW1lID0gdV90aW1lL3RoaXMubV9yZXZpc2VUaW1lU2NhbGU7XG4gICAgICAgICAgICB1X3RpbWUgLT0gdGhpcy5tX3JldmlzZVN0YXJ0VGltZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tYXRlcmlhbC5zZXRQcm9wZXJ0eShcInVfdGltZVwiLCB1X3RpbWUpO1xuICAgICAgICB0aGlzLl90aW1lICs9IGR0O1xuICAgIH0sXG5cbiAgICByZWZyZXNoU3ByaXRlRnJhbWVEYXRhKCl7XG4gICAgICAgIGxldCBzcHJpdGUgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSk7XG4gICAgICAgIGxldCBtYXRlcmlhbCA9IHNwcml0ZS5nZXRNYXRlcmlhbCgwKTtcbiAgICAgICAgbGV0IGZyYW1lID0gc3ByaXRlLnNwcml0ZUZyYW1lO1xuXG4gICAgICAgIGlmKGZyYW1lICE9IG51bGwpXG4gICAgICAgIHtcbiAgICAgICAgICAgIC8vIHhNaW5cbiAgICAgICAgICAgIGxldCBsID0gZnJhbWUudXZbMF07XG4gICAgICAgICAgICAvLyB4TWF4XG4gICAgICAgICAgICBsZXQgciA9IGZyYW1lLnV2WzZdO1xuICAgICAgICAgICAgLy8geU1heFxuICAgICAgICAgICAgbGV0IGIgPSBmcmFtZS51dlszXTtcbiAgICAgICAgICAgIC8vIHlNaW5cbiAgICAgICAgICAgIGxldCB0ID0gZnJhbWUudXZbNV07XG4gICAgICAgICAgICAvLyDnurnnkIblnKjlkIjlm77kuK3nmoTlm5vkuKrovrnnlYwgdXYg5Z2Q5qCHXG4gICAgICAgICAgICBsZXQgdV91dk9mZnNldCA9IG5ldyBjYy5WZWM0KGwsIHQsIHIsIGIpO1xuICAgICAgICAgICAgLy8g57q555CG5piv5ZCm5peL6L2sXG4gICAgICAgICAgICBsZXQgdV91dlJvdGF0ZWQgPSBmcmFtZS5pc1JvdGF0ZWQoKSA/IDEuMCA6IDAuMDtcbiAgICAgICAgICAgIC8vIOiuvue9ruadkOi0qOeahOWxnuaAp1xuXG4gICAgICAgICAgICBpZihtYXRlcmlhbC5nZXRQcm9wZXJ0eShcInVfdXZPZmZzZXRcIikgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtYXRlcmlhbC5zZXRQcm9wZXJ0eShcInVfdXZPZmZzZXRcIiwgdV91dk9mZnNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZihtYXRlcmlhbC5nZXRQcm9wZXJ0eShcInVfdXZSb3RhdGVkXCIpICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuc2V0UHJvcGVydHkoXCJ1X3V2Um90YXRlZFwiLCB1X3V2Um90YXRlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn0pO1xuIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -6865,7 +7629,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/ListView/List.js'; + var __filename = 'preview-scripts/assets/Script/Storage.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -6873,625 +7637,41 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'd5421HgLShFKIjj5f18m1mi', 'List'); -// Script/ListView/List.ts +cc._RF.push(module, '7cf8cMT5zJA0ZU4Gp0JcL8v', 'Storage'); +// Script/Storage.ts "use strict"; -// Learn TypeScript: -// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html -// Learn Attribute: -// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html -// Learn life-cycle callbacks: -// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; Object.defineProperty(exports, "__esModule", { value: true }); -exports.StartAxisType = exports.ListType = void 0; -var ItemRender_1 = require("./ItemRender"); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -/**列表排列方式 */ -var ListType; -(function (ListType) { - /**水平排列 */ - ListType[ListType["Horizontal"] = 1] = "Horizontal"; - /**垂直排列 */ - ListType[ListType["Vertical"] = 2] = "Vertical"; - /**网格排列 */ - ListType[ListType["Grid"] = 3] = "Grid"; -})(ListType = exports.ListType || (exports.ListType = {})); -/**网格布局中的方向 */ -var StartAxisType; -(function (StartAxisType) { - /**水平排列 */ - StartAxisType[StartAxisType["Horizontal"] = 1] = "Horizontal"; - /**垂直排列 */ - StartAxisType[StartAxisType["Vertical"] = 2] = "Vertical"; -})(StartAxisType = exports.StartAxisType || (exports.StartAxisType = {})); -/** - * 列表 - * 根据cocos_example的listView改动而来 - * @author chenkai 2020.7.8 - * @example - * 1.创建cocos的ScrollView组件,添加List,设置List属性即可 - * - */ -var List = /** @class */ (function (_super) { - __extends(List, _super); - function List() { - var _this = _super !== null && _super.apply(this, arguments) || this; - //==================== 属性面板 ========================= - /**列表选项 */ - _this.itemRender = null; - /**排列方式 */ - _this.type = ListType.Vertical; - /**网格布局中的方向 */ - _this.startAxis = StartAxisType.Horizontal; - /**列表项之间X间隔 */ - _this.spaceX = 0; - /**列表项之间Y间隔 */ - _this.spaceY = 0; - /**上间距 */ - _this.padding_top = 0; - /**下间距 */ - _this.padding_buttom = 0; - /**左间距 */ - _this.padding_left = 0; - _this._padding = 0; - /**右间距 */ - _this.padding_right = 0; - //====================== 滚动容器 =============================== - /**列表滚动容器 */ - _this.scrollView = null; - /**scrollView的内容容器 */ - _this.content = null; - //======================== 列表项 =========================== - /**列表项数据 */ - _this.itemDataList = []; - /**应创建的实例数量 */ - _this.spawnCount = 0; - /**存放列表项实例的数组 */ - _this.itemList = []; - /**item的高度 */ - _this.itemHeight = 0; - /**item的宽度 */ - _this.itemWidth = 0; - /**存放不再使用中的列表项 */ - _this.itemPool = []; - //======================= 计算参数 ========================== - /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */ - _this.halfScrollView = 0; - /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */ - _this.lastContentPosX = 0; - /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */ - _this.lastContentPosY = 0; - /**网格行数 */ - _this.gridRow = 0; - /**网格列数 */ - _this.gridCol = 0; - /**刷新时间,单位s */ - _this.updateTimer = 0; - /**刷新间隔,单位s */ - _this.updateInterval = 0.1; - /**是否滚动容器 */ - _this.bScrolling = false; - /**刷新的函数 */ - _this.updateFun = function () { }; - return _this; - } - List.prototype.onLoad = function () { - this.itemHeight = this.itemRender.height; - this.itemWidth = this.itemRender.width; - this.scrollView = this.node.getComponent(cc.ScrollView); - this.content = this.scrollView.content; - this.content.anchorX = 0; - this.content.anchorY = 1; - this.content.removeAllChildren(); - this.scrollView.node.on("scrolling", this.onScrolling, this); - }; - /** - * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据) - * @param itemDataList item数据列表 - */ - List.prototype.setData = function (itemDataList) { - this.itemDataList = itemDataList.slice(); - this.updateContent(); - }; - /**计算列表的各项参数 */ - List.prototype.countListParam = function () { - var dataLen = this.itemDataList.length; - if (this.type == ListType.Vertical) { - this.scrollView.horizontal = false; - this.scrollView.vertical = true; - this.content.width = this.content.parent.width; - this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom; - this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个 - this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围 - this.updateFun = this.updateV; +exports.StorageMessage = void 0; +// var jequry = require("jquery"); +// var coinManager = require("coinManager"); +var StorageMessage = { + getStorage: function (key) { + var result = null; + if (cc.sys.localStorage.getItem(key)) { + var result = cc.sys.localStorage.getItem(key); } - else if (this.type == ListType.Horizontal) { - this.scrollView.horizontal = true; - this.scrollView.vertical = false; - this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right; - this.content.height = this.content.parent.height; - this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2; - this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; - this.updateFun = this.udpateH; + if (result) { + result = JSON.parse(result); } - else if (this.type == ListType.Grid) { - if (this.startAxis == StartAxisType.Vertical) { - this.scrollView.horizontal = false; - this.scrollView.vertical = true; - this.content.width = this.content.parent.width; - //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 - if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) { - this.padding_left = 0; - this.padding_right = 0; - console.error("padding_left或padding_right过大"); - } - this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX)); - this.gridRow = Math.ceil(dataLen / this.gridCol); - this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom; - this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2; - this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; - this.updateFun = this.updateGrid_V; - } - else if (this.startAxis == StartAxisType.Horizontal) { - this.scrollView.horizontal = true; - this.scrollView.vertical = false; - //计算高间隔 - this.content.height = this.content.parent.height; - //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 - if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) { - this.padding_top = 0; - this.padding_buttom = 0; - console.error("padding_top或padding_buttom过大"); - } - this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY)); - this.gridCol = Math.ceil(dataLen / this.gridRow); - this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right; - this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2; - this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; - this.updateFun = this.updateGrid_H; - } + return result; + }, + setStorage: function (key, value) { + //主动拉起分享接口 + var temp = JSON.stringify(value); + cc.sys.localStorage.setItem(key, temp); + // debugger; + // var temp = cc.sys.localStorage.getItem(key); + // debugger; + }, + removeStorage: function (key) { + //主动删除消息接口 + if (cc.sys.localStorage.getItem(key)) { + cc.sys.localStorage.removeItem(key); } - }; - /** - * 创建列表 - * @param startIndex 起始显示的数据索引 0表示第一项 - * @param offset scrollView偏移量 - */ - List.prototype.createList = function (startIndex, offset) { - //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端 - if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) { - startIndex = this.itemDataList.length - this.spawnCount; - offset = this.scrollView.getMaxScrollOffset(); - //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项 - } - else if (this.itemDataList.length <= this.spawnCount) { - startIndex = 0; - } - for (var i = 0; i < this.spawnCount; i++) { - var item = void 0; - //需要显示的数据索引在数据范围内,则item实例显示出来 - if (i + startIndex < this.itemDataList.length) { - if (this.itemList[i] == null) { - item = this.getItem(); - this.itemList.push(item); - item.parent = this.content; - } - else { - item = this.itemList[i]; - } - //需要显示的数据索引超过了数据范围,则item实例隐藏起来 - } - else { - //item实例数量 > 需要显示的数据量 - if (this.itemList.length > (this.itemDataList.length - startIndex)) { - item = this.itemList.pop(); - item.removeFromParent(); - this.itemPool.push(item); - } - continue; - } - var itemRender = item.getComponent(ItemRender_1.default); - itemRender.itemIndex = i + startIndex; - itemRender.data = this.itemDataList[i + startIndex]; - itemRender.dataChanged(); - if (this.type == ListType.Vertical) { - //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。 - item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top); - } - else if (this.type == ListType.Horizontal) { - item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2); - } - else if (this.type == ListType.Grid) { - if (this.startAxis == StartAxisType.Vertical) { - var row = Math.floor((i + startIndex) / this.gridCol); - var col = (i + startIndex) % this.gridCol; - item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); - item.opacity = 255; - } - else if (this.startAxis == StartAxisType.Horizontal) { - var row = (i + startIndex) % this.gridRow; - var col = Math.floor((i + startIndex) / this.gridRow); - item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); - item.opacity = 255; - } - } - } - this.scrollView.scrollToOffset(offset); - }; - /**获取一个列表项 */ - List.prototype.getItem = function () { - if (this.itemPool.length == 0) { - return cc.instantiate(this.itemRender); - } - else { - return this.itemPool.pop(); - } - }; - List.prototype.update = function (dt) { - if (this.bScrolling == false) { - return; - } - this.updateTimer += dt; - if (this.updateTimer < this.updateInterval) { - return; - } - this.updateTimer = 0; - this.bScrolling = false; - this.updateFun(); - }; - List.prototype.onScrolling = function () { - this.bScrolling = true; - }; - /**垂直排列 */ - List.prototype.updateV = function () { - var items = this.itemList; - var item; - var bufferZone = this.halfScrollView; - var isUp = this.scrollView.content.y > this.lastContentPosY; - var offset = (this.itemHeight + this.spaceY) * items.length; - for (var i = 0; i < items.length; i++) { - item = items[i]; - var viewPos = this.getPositionInView(item); - if (isUp) { - //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 - if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { - var itemRender = item.getComponent(ItemRender_1.default); - var itemIndex = itemRender.itemIndex + items.length; - itemRender.itemIndex = itemIndex; - itemRender.data = this.itemDataList[itemIndex]; - itemRender.dataChanged(); - item.y = item.y - offset; - } - } - else { - //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 - if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { - var itemRender = item.getComponent(ItemRender_1.default); - var itemIndex = itemRender.itemIndex - items.length; - itemRender.itemIndex = itemIndex; - itemRender.data = this.itemDataList[itemIndex]; - itemRender.dataChanged(); - item.y = item.y + offset; - } - } - } - this.lastContentPosY = this.scrollView.content.y; - }; - /**水平排列 */ - List.prototype.udpateH = function () { - var items = this.itemList; - var item; - var bufferZone = this.halfScrollView; - var isRight = this.scrollView.content.x > this.lastContentPosX; - var offset = (this.itemWidth + this.spaceX) * items.length; - for (var i = 0; i < items.length; i++) { - item = items[i]; - var viewPos = this.getPositionInView(item); - if (isRight) { - //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 - if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { - var itemRender = item.getComponent(ItemRender_1.default); - var itemIndex = itemRender.itemIndex - items.length; - itemRender.itemIndex = itemIndex; - itemRender.data = this.itemDataList[itemIndex]; - itemRender.dataChanged(); - item.x = item.x - offset; - } - } - else { - //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 - if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { - var itemRender = item.getComponent(ItemRender_1.default); - var itemIndex = itemRender.itemIndex + items.length; - itemRender.itemIndex = itemIndex; - itemRender.data = this.itemDataList[itemIndex]; - itemRender.dataChanged(); - item.x = item.x + offset; - } - } - } - this.lastContentPosX = this.scrollView.content.x; - }; - /**网格垂直排列 */ - List.prototype.updateGrid_V = function () { - var items = this.itemList; - var item; - var bufferZone = this.halfScrollView; - var isUp = this.scrollView.content.y > this.lastContentPosY; - var offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol); - for (var i = 0; i < items.length; i++) { - item = items[i]; - var viewPos = this.getPositionInView(item); - if (isUp) { - //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 - if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { - var itemRender = item.getComponent(ItemRender_1.default); - var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol; - if (this.itemDataList[itemIndex] != null) { - item.y = item.y - offset; - itemRender.itemIndex = itemIndex; - itemRender.data = this.itemDataList[itemIndex]; - itemRender.dataChanged(); - item.opacity = 255; - } - else { - item.y = item.y - offset; - itemRender.itemIndex = itemIndex; - item.opacity = 0; - } - } - } - else { //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 - if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { - var itemRender = item.getComponent(ItemRender_1.default); - var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol; - if (this.itemDataList[itemIndex] != null) { - item.y = item.y + offset; - itemRender.itemIndex = itemIndex; - itemRender.data = this.itemDataList[itemIndex]; - itemRender.dataChanged(); - item.opacity = 255; - } - else { - item.y = item.y + offset; - itemRender.itemIndex = itemIndex; - item.opacity = 0; - } - } - } - } - this.lastContentPosY = this.scrollView.content.y; - }; - /**网格水平排列 */ - List.prototype.updateGrid_H = function () { - var items = this.itemList; - var item; - var bufferZone = this.halfScrollView; - var isRight = this.scrollView.content.x > this.lastContentPosX; - var offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow); - for (var i = 0; i < items.length; i++) { - item = items[i]; - var viewPos = this.getPositionInView(item); - if (isRight) { - //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 - if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { - var itemRender = item.getComponent(ItemRender_1.default); - var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow; - if (this.itemDataList[itemIndex] != null) { - item.x = item.x - offset; - itemRender.itemIndex = itemIndex; - itemRender.data = this.itemDataList[itemIndex]; - itemRender.dataChanged(); - item.opacity = 255; - } - else { - item.x = item.x - offset; - itemRender.itemIndex = itemIndex; - item.opacity = 0; - } - } - } - else { - //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 - if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { - var itemRender = item.getComponent(ItemRender_1.default); - var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow; - if (this.itemDataList[itemIndex] != null) { - item.x = item.x + offset; - itemRender.itemIndex = itemIndex; - itemRender.data = this.itemDataList[itemIndex]; - itemRender.dataChanged(); - item.opacity = 255; - } - else { - item.x = item.x + offset; - itemRender.itemIndex = itemIndex; - item.opacity = 0; - } - } - } - } - this.lastContentPosX = this.scrollView.content.x; - }; - /**获取item在scrollView的局部坐标 */ - List.prototype.getPositionInView = function (item) { - var worldPos = item.parent.convertToWorldSpaceAR(item.position); - var viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos); - return viewPos; - }; - /**获取列表数据 */ - List.prototype.getListData = function () { - return this.itemDataList; - }; - /** - * 增加一项数据到列表的末尾 - * @param data 数据 - */ - List.prototype.addItem = function (data) { - this.itemDataList.push(data); - this.updateContent(); - }; - /** - * 增加一项数据到列表指定位置 - * @param index 位置,0表示第1项 - * @param data 数据 - */ - List.prototype.addItemAt = function (index, data) { - if (this.itemDataList[index] != null || this.itemDataList.length == index) { - this.itemDataList.splice(index, 1, data); - this.updateContent(); - } - }; - /** - * 删除一项数据 - * @param index 删除项的位置 ,0表示第1项 - */ - List.prototype.deleteItem = function (index) { - if (this.itemDataList[index] != null) { - this.itemDataList.splice(index, 1); - this.updateContent(); - } - }; - /** - * 改变一项数据 - * @param index 位置,0表示第1项 - * @param data 替换的数据 - */ - List.prototype.changeItem = function (index, data) { - if (this.itemDataList[index] != null) { - this.itemDataList[index] = data; - this.updateContent(); - } - }; - /**获取第一个Item的位置 */ - List.prototype.updateContent = function () { - //显示列表实例为0个 - if (this.itemList.length == 0) { - this.countListParam(); - this.createList(0, new cc.Vec2(0, 0)); - //显示列表的实例不为0个,则需要重新排列item实例数组 - } - else { - if (this.type == ListType.Vertical) { - this.itemList.sort(function (a, b) { - return b.y - a.y; - }); - } - else if (this.type == ListType.Horizontal) { - this.itemList.sort(function (a, b) { - return a.x - b.x; - }); - } - else if (this.type == ListType.Grid) { - if (this.startAxis == StartAxisType.Vertical) { - this.itemList.sort(function (a, b) { - return a.x - b.x; - }); - this.itemList.sort(function (a, b) { - return b.y - a.y; - }); - } - else if (this.startAxis == StartAxisType.Horizontal) { - this.itemList.sort(function (a, b) { - return b.y - a.y; - }); - this.itemList.sort(function (a, b) { - return a.x - b.x; - }); - } - } - this.countListParam(); - //获取第一个item实例需要显示的数据索引 - var startIndex = this.itemList[0].getComponent(ItemRender_1.default).itemIndex; - if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) { - startIndex += (startIndex + this.spawnCount) % this.gridCol; - } - else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) { - startIndex += (startIndex + this.spawnCount) % this.gridRow; - } - //getScrollOffset()和scrollToOffset()的x值是相反的 - var offset = this.scrollView.getScrollOffset(); - offset.x = -offset.x; - this.createList(startIndex, offset); - } - }; - /**销毁 */ - List.prototype.onDestroy = function () { - //清理列表项 - var len = this.itemList.length; - for (var i = 0; i < len; i++) { - if (cc.isValid(this.itemList[i], true)) { - this.itemList[i].destroy(); - } - } - this.itemList.length = 0; - //清理对象池 - len = this.itemPool.length; - for (var i = 0; i < len; i++) { - if (cc.isValid(this.itemPool[i], true)) { - this.itemPool[i].destroy(); - } - } - this.itemPool.length = 0; - //清理列表数据 - this.itemDataList.length = 0; - }; - __decorate([ - property({ type: cc.Node, tooltip: "列表项" }) - ], List.prototype, "itemRender", void 0); - __decorate([ - property({ type: cc.Enum(ListType), tooltip: "排列方式" }) - ], List.prototype, "type", void 0); - __decorate([ - property({ type: cc.Enum(StartAxisType), tooltip: "网格布局中的方向", visible: function () { return this.type == ListType.Grid; } }) - ], List.prototype, "startAxis", void 0); - __decorate([ - property({ type: cc.Integer, tooltip: "列表项X间隔", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) - ], List.prototype, "spaceX", void 0); - __decorate([ - property({ type: cc.Integer, tooltip: "列表项Y间隔", visible: function () { return this.type == ListType.Vertical || this.type == ListType.Grid; } }) - ], List.prototype, "spaceY", void 0); - __decorate([ - property({ type: cc.Integer, tooltip: "上间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) - ], List.prototype, "padding_top", void 0); - __decorate([ - property({ type: cc.Integer, tooltip: "下间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) - ], List.prototype, "padding_buttom", void 0); - __decorate([ - property({ type: cc.Integer, tooltip: "左间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) - ], List.prototype, "padding_left", void 0); - __decorate([ - property(cc.Integer) - ], List.prototype, "_padding", void 0); - __decorate([ - property({ type: cc.Integer, tooltip: "右间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) - ], List.prototype, "padding_right", void 0); - List = __decorate([ - ccclass - ], List); - return List; -}(cc.Component)); -exports.default = List; + }, +}; +exports.StorageMessage = StorageMessage; cc._RF.pop(); } @@ -7504,120 +7684,5 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxMaXN0Vmlld1xcTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsMkNBQXFDO0FBRS9CLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRTVDLFlBQVk7QUFDWixJQUFZLFFBT1g7QUFQRCxXQUFZLFFBQVE7SUFDaEIsVUFBVTtJQUNWLG1EQUFjLENBQUE7SUFDZCxVQUFVO0lBQ1YsK0NBQVksQ0FBQTtJQUNaLFVBQVU7SUFDVix1Q0FBUSxDQUFBO0FBQ1osQ0FBQyxFQVBXLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBT25CO0FBRUQsY0FBYztBQUNkLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUNyQixVQUFVO0lBQ1YsNkRBQWMsQ0FBQTtJQUNkLFVBQVU7SUFDVix5REFBWSxDQUFBO0FBQ2hCLENBQUMsRUFMVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQUt4QjtBQUVEOzs7Ozs7O0dBT0c7QUFFSDtJQUFrQyx3QkFBWTtJQUE5QztRQUFBLHFFQXlpQkM7UUF2aUJHLHFEQUFxRDtRQUNyRCxVQUFVO1FBRUgsZ0JBQVUsR0FBWSxJQUFJLENBQUM7UUFFbEMsVUFBVTtRQUVILFVBQUksR0FBYSxRQUFRLENBQUMsUUFBUSxDQUFDO1FBRTFDLGNBQWM7UUFFUCxlQUFTLEdBQWtCLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFFM0QsY0FBYztRQUVQLFlBQU0sR0FBVyxDQUFDLENBQUM7UUFFMUIsY0FBYztRQUVQLFlBQU0sR0FBVyxDQUFDLENBQUM7UUFFMUIsU0FBUztRQUVGLGlCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRS9C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QUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3Q0FDL0c7SUFJMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sZ0JBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7d0NBQzNHO0lBSTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLGdCQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs2Q0FDckc7SUFJL0I7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sZ0JBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDO2dEQUNsRztJQUlsQztRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxnQkFBSyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7OENBQ3RHO0lBS2hDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7MENBQ087SUFJNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sZ0JBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDOytDQUNyRztJQTFDaEIsSUFBSTtRQUR4QixPQUFPO09BQ2EsSUFBSSxDQXlpQnhCO0lBQUQsV0FBQztDQXppQkQsQUF5aUJDLENBemlCaUMsRUFBRSxDQUFDLFNBQVMsR0F5aUI3QztrQkF6aUJvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEl0ZW1SZW5kZXIgZnJvbSBcIi4vSXRlbVJlbmRlclwiXHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuLyoq5YiX6KGo5o6S5YiX5pa55byPICovXHJcbmV4cG9ydCBlbnVtIExpc3RUeXBlIHtcclxuICAgIC8qKuawtOW5s+aOkuWIlyAqL1xyXG4gICAgSG9yaXpvbnRhbCA9IDEsXHJcbiAgICAvKirlnoLnm7TmjpLliJcgKi9cclxuICAgIFZlcnRpY2FsID0gMixcclxuICAgIC8qKue9keagvOaOkuWIlyAqL1xyXG4gICAgR3JpZCA9IDNcclxufVxyXG5cclxuLyoq572R5qC85biD5bGA5Lit55qE5pa55ZCRICovXHJcbmV4cG9ydCBlbnVtIFN0YXJ0QXhpc1R5cGUge1xyXG4gICAgLyoq5rC05bmz5o6S5YiXICovXHJcbiAgICBIb3Jpem9udGFsID0gMSxcclxuICAgIC8qKuWeguebtOaOkuWIlyAqL1xyXG4gICAgVmVydGljYWwgPSAyLFxyXG59XHJcblxyXG4vKipcclxuICog5YiX6KGoXHJcbiAqIOagueaNrmNvY29zX2V4YW1wbGXnmoRsaXN0Vmlld+aUueWKqOiAjOadpVxyXG4gKiBAYXV0aG9yIGNoZW5rYWkgMjAyMC43LjhcclxuICogQGV4YW1wbGVcclxuICogIDEu5Yib5bu6Y29jb3PnmoRTY3JvbGxWaWV357uE5Lu277yM5re75YqgTGlzdO+8jOiuvue9rkxpc3TlsZ7mgKfljbPlj69cclxuICogIFxyXG4gKi9cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlzdCBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgLy89PT09PT09PT09PT09PT09PT09PSDlsZ7mgKfpnaLmnb8gPT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgLyoq5YiX6KGo6YCJ6aG5ICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5Ob2RlLCB0b29sdGlwOiBcIuWIl+ihqOmhuVwiIH0pXHJcbiAgICBwdWJsaWMgaXRlbVJlbmRlcjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgLyoq5o6S5YiX5pa55byPICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5FbnVtKExpc3RUeXBlKSwgdG9vbHRpcDogXCLmjpLliJfmlrnlvI9cIiB9KVxyXG4gICAgcHVibGljIHR5cGU6IExpc3RUeXBlID0gTGlzdFR5cGUuVmVydGljYWw7XHJcblxyXG4gICAgLyoq572R5qC85biD5bGA5Lit55qE5pa55ZCRICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5FbnVtKFN0YXJ0QXhpc1R5cGUpLCB0b29sdGlwOiBcIue9keagvOW4g+WxgOS4reeahOaWueWQkVwiLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQgfSB9KVxyXG4gICAgcHVibGljIHN0YXJ0QXhpczogU3RhcnRBeGlzVHlwZSA9IFN0YXJ0QXhpc1R5cGUuSG9yaXpvbnRhbDtcclxuXHJcbiAgICAvKirliJfooajpobnkuYvpl7RY6Ze06ZqUICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuWIl+ihqOmhuVjpl7TpmpRcIiwgdmlzaWJsZSgpIHsgcmV0dXJuICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuSG9yaXpvbnRhbCB8fCB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkgfSB9KVxyXG4gICAgcHVibGljIHNwYWNlWDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirliJfooajpobnkuYvpl7RZ6Ze06ZqUICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuWIl+ihqOmhuVnpl7TpmpRcIiwgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCB8fCB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCB9IH0pXHJcbiAgICBwdWJsaWMgc3BhY2VZOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKuS4iumXtOi3nSAqL1xyXG4gICAgQHByb3BlcnR5KHsgdHlwZTogY2MuSW50ZWdlciwgdG9vbHRpcDogXCLkuIrpl7Tot51cIiwgdmlzaWJsZSgpIHsgcmV0dXJuICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuVmVydGljYWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX3RvcDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirkuIvpl7Tot50gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5LiL6Ze06LedXCIsIHZpc2libGUoKSB7IHJldHVybiAodGhpcy50eXBlID09IExpc3RUeXBlLlZlcnRpY2FsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB9IH0pXHJcbiAgICBwdWJsaWMgcGFkZGluZ19idXR0b206IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoq5bem6Ze06LedICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuW3pumXtOi3nVwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB9IH0pXHJcbiAgICBwdWJsaWMgcGFkZGluZ19sZWZ0OiBudW1iZXIgPSAwO1xyXG5cclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkludGVnZXIpXHJcbiAgICBwdWJsaWMgX3BhZGRpbmc6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoq5Y+z6Ze06LedICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuWPs+mXtOi3nVwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB9IH0pXHJcbiAgICBwdWJsaWMgcGFkZGluZ19yaWdodDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvLz09PT09PT09PT09PT09PT09PT09PT0g5rua5Yqo5a655ZmoID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8qKuWIl+ihqOa7muWKqOWuueWZqCAqL1xyXG4gICAgcHVibGljIHNjcm9sbFZpZXc6IGNjLlNjcm9sbFZpZXcgPSBudWxsO1xyXG4gICAgLyoqc2Nyb2xsVmlld+eahOWGheWuueWuueWZqCAqL1xyXG4gICAgcHJpdmF0ZSBjb250ZW50OiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PSDliJfooajpobkgPT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAvKirliJfooajpobnmlbDmja4gKi9cclxuICAgIHByaXZhdGUgaXRlbURhdGFMaXN0OiBBcnJheTxhbnk+ID0gW107XHJcbiAgICAvKirlupTliJvlu7rnmoTlrp7kvovmlbDph48gKi9cclxuICAgIHByaXZhdGUgc3Bhd25Db3VudDogbnVtYmVyID0gMDtcclxuICAgIC8qKuWtmOaUvuWIl+ihqOmhueWunuS+i+eahOaVsOe7hCAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtTGlzdDogQXJyYXk8Y2MuTm9kZT4gPSBbXTtcclxuICAgIC8qKml0ZW3nmoTpq5jluqYgKi9cclxuICAgIHByaXZhdGUgaXRlbUhlaWdodDogbnVtYmVyID0gMDtcclxuICAgIC8qKml0ZW3nmoTlrr3luqYgKi9cclxuICAgIHByaXZhdGUgaXRlbVdpZHRoOiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5a2Y5pS+5LiN5YaN5L2/55So5Lit55qE5YiX6KGo6aG5ICovXHJcbiAgICBwcml2YXRlIGl0ZW1Qb29sOiBBcnJheTxjYy5Ob2RlPiA9IFtdO1xyXG5cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT0g6K6h566X5Y+C5pWwID09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAvKirot53nprtzY3JvbGxWaWV35Lit5b+D54K555qE6Led56a777yM6LaF6L+H6L+Z5Liq6Led56a755qEaXRlbeS8muiiq+mHjee9ru+8jOS4gOiIrOiuvue9ruS4uiBzY3JvbGxWSWV3LmhlaWdodC8yICsgaXRlbS5oZWlndC8yICsgc3BhY2XvvIzlm6DkuLrov5nkuKrot53nprtpdGVt5q2j5aW96LaF5Ye6c2Nyb2xsVmlld+aYvuekuuiMg+WbtCAqL1xyXG4gICAgcHJpdmF0ZSBoYWxmU2Nyb2xsVmlldzogbnVtYmVyID0gMDtcclxuICAgIC8qKuS4iuS4gOasoWNvbnRlbnTnmoRY5YC877yM55So5LqO5ZKM546w5ZyoY29udGVudOeahFjlgLzmr5TovoPvvIzlvpflh7rmmK/lkJHlt6bov5jmmK/lkJHlj7Pmu5rliqggKi9cclxuICAgIHByaXZhdGUgbGFzdENvbnRlbnRQb3NYOiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5LiK5LiA5qyhY29udGVudOeahFnlgLzvvIznlKjkuo7lkoznjrDlnKhjb250ZW5055qEWeWAvOavlOi+g++8jOW+l+WHuuaYr+WQkeS4iui/mOaYr+WQkeS4i+a7muWKqCAqL1xyXG4gICAgcHJpdmF0ZSBsYXN0Q29udGVudFBvc1k6IG51bWJlciA9IDA7XHJcbiAgICAvKirnvZHmoLzooYzmlbAgKi9cclxuICAgIHByaXZhdGUgZ3JpZFJvdzogbnVtYmVyID0gMDtcclxuICAgIC8qKue9keagvOWIl+aVsCAqL1xyXG4gICAgcHJpdmF0ZSBncmlkQ29sOiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5Yi35paw5pe26Ze077yM5Y2V5L2NcyAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVUaW1lcjogbnVtYmVyID0gMDtcclxuICAgIC8qKuWIt+aWsOmXtOmalO+8jOWNleS9jXMgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlSW50ZXJ2YWw6IG51bWJlciA9IDAuMTtcclxuICAgIC8qKuaYr+WQpua7muWKqOWuueWZqCAqL1xyXG4gICAgcHJpdmF0ZSBiU2Nyb2xsaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvKirliLfmlrDnmoTlh73mlbAgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlRnVuOiBGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHsgfTtcclxuXHJcbiAgICBvbkxvYWQoKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtSGVpZ2h0ID0gdGhpcy5pdGVtUmVuZGVyLmhlaWdodDtcclxuICAgICAgICB0aGlzLml0ZW1XaWR0aCA9IHRoaXMuaXRlbVJlbmRlci53aWR0aDtcclxuICAgICAgICB0aGlzLnNjcm9sbFZpZXcgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KGNjLlNjcm9sbFZpZXcpO1xyXG4gICAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50O1xyXG4gICAgICAgIHRoaXMuY29udGVudC5hbmNob3JYID0gMDtcclxuICAgICAgICB0aGlzLmNvbnRlbnQuYW5jaG9yWSA9IDE7XHJcbiAgICAgICAgdGhpcy5jb250ZW50LnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxWaWV3Lm5vZGUub24oXCJzY3JvbGxpbmdcIiwgdGhpcy5vblNjcm9sbGluZywgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJfooajmlbDmja4gKOWIl+ihqOaVsOaNruWkjeWItuS9v+eUqO+8jOWmguaenOWIl+ihqOaVsOaNruaUueWPmO+8jOWImemcgOimgemHjeaWsOiuvue9ruS4gOmBjeaVsOaNrilcclxuICAgICAqIEBwYXJhbSBpdGVtRGF0YUxpc3QgaXRlbeaVsOaNruWIl+ihqFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0RGF0YShpdGVtRGF0YUxpc3Q6IEFycmF5PGFueT4pIHtcclxuICAgICAgICB0aGlzLml0ZW1EYXRhTGlzdCA9IGl0ZW1EYXRhTGlzdC5zbGljZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xyXG4gICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLyoq6K6h566X5YiX6KGo55qE5ZCE6aG55Y+C5pWwICovXHJcbiAgICBwcml2YXRlIGNvdW50TGlzdFBhcmFtKCkge1xyXG4gICAgICAgIGxldCBkYXRhTGVuID0gdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoO1xyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3Lmhvcml6b250YWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3LnZlcnRpY2FsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50LndpZHRoID0gdGhpcy5jb250ZW50LnBhcmVudC53aWR0aDtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50LmhlaWdodCA9IGRhdGFMZW4gKiB0aGlzLml0ZW1IZWlnaHQgKyAoZGF0YUxlbiAtIDEpICogdGhpcy5zcGFjZVkgKyB0aGlzLnBhZGRpbmdfdG9wICsgdGhpcy5wYWRkaW5nX2J1dHRvbTtcclxuICAgICAgICAgICAgdGhpcy5zcGF3bkNvdW50ID0gTWF0aC5yb3VuZCh0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpKSArIDI7IC8v6K6h566X5Yib5bu655qEaXRlbeWunuS+i+aVsOmHj++8jOavlOW9k+WJjXNjcm9sbFZpZXflrrnlmajog73mlL7kuIvnmoRpdGVt5pWw6YeP5YaN5Yqg5LiKMuS4qlxyXG4gICAgICAgICAgICB0aGlzLmhhbGZTY3JvbGxWaWV3ID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUuaGVpZ2h0IC8gMiArIHRoaXMuaXRlbUhlaWdodCAvIDIgKyB0aGlzLnNwYWNlWTsgLy/orqHnrpdidWZmZXJab25l77yMaXRlbeeahOaYvuekuuiMg+WbtFxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZ1biA9IHRoaXMudXBkYXRlVjtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy5ob3Jpem9udGFsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3LnZlcnRpY2FsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudC53aWR0aCA9IGRhdGFMZW4gKiB0aGlzLml0ZW1XaWR0aCArIChkYXRhTGVuIC0gMSkgKiB0aGlzLnNwYWNlWCArIHRoaXMucGFkZGluZ19sZWZ0ICsgdGhpcy5wYWRkaW5nX3JpZ2h0O1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQuaGVpZ2h0ID0gdGhpcy5jb250ZW50LnBhcmVudC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMuc3Bhd25Db3VudCA9IE1hdGgucm91bmQodGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkpICsgMjtcclxuICAgICAgICAgICAgdGhpcy5oYWxmU2Nyb2xsVmlldyA9IHRoaXMuc2Nyb2xsVmlldy5ub2RlLndpZHRoIC8gMiArIHRoaXMuaXRlbVdpZHRoIC8gMiArIHRoaXMuc3BhY2VYO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZ1biA9IHRoaXMudWRwYXRlSDtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLlZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcuaG9yaXpvbnRhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3LnZlcnRpY2FsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC53aWR0aCA9IHRoaXMuY29udGVudC5wYXJlbnQud2lkdGg7XHJcbiAgICAgICAgICAgICAgICAvL+WmguaenGxlZnTlkoxyaWdodOmXtOmalOi/h+Wkp++8jOWvvOiHtOaUvuS4jeS4i+S4gOS4qml0ZW3vvIzliJlsZWZ05ZKMcmlnaHTpg73orr7nva7kuLow77yM55u45b2T5LqO5LiN55Sf5pWIXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWRkaW5nX2xlZnQgKyB0aGlzLnBhZGRpbmdfcmlnaHQgKyB0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYID4gdGhpcy5jb250ZW50LndpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWRkaW5nX2xlZnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ19yaWdodCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcInBhZGRpbmdfbGVmdOaIlnBhZGRpbmdfcmlnaHTov4flpKdcIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkQ29sID0gTWF0aC5mbG9vcigodGhpcy5jb250ZW50LndpZHRoIC0gdGhpcy5wYWRkaW5nX2xlZnQgLSB0aGlzLnBhZGRpbmdfcmlnaHQpIC8gKHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVgpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZFJvdyA9IE1hdGguY2VpbChkYXRhTGVuIC8gdGhpcy5ncmlkQ29sKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSB0aGlzLmdyaWRSb3cgKiB0aGlzLml0ZW1IZWlnaHQgKyAodGhpcy5ncmlkUm93IC0gMSkgKiB0aGlzLnNwYWNlWSArIHRoaXMucGFkZGluZ190b3AgKyB0aGlzLnBhZGRpbmdfYnV0dG9tO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zcGF3bkNvdW50ID0gTWF0aC5yb3VuZCh0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpKSAqIHRoaXMuZ3JpZENvbCArIHRoaXMuZ3JpZENvbCAqIDI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbGZTY3JvbGxWaWV3ID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUuaGVpZ2h0IC8gMiArIHRoaXMuaXRlbUhlaWdodCAvIDIgKyB0aGlzLnNwYWNlWTtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51cGRhdGVHcmlkX1Y7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcuaG9yaXpvbnRhbCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIC8v6K6h566X6auY6Ze06ZqUXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQuaGVpZ2h0ID0gdGhpcy5jb250ZW50LnBhcmVudC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICAvL+WmguaenGxlZnTlkoxyaWdodOmXtOmalOi/h+Wkp++8jOWvvOiHtOaUvuS4jeS4i+S4gOS4qml0ZW3vvIzliJlsZWZ05ZKMcmlnaHTpg73orr7nva7kuLow77yM55u45b2T5LqO5LiN55Sf5pWIXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWRkaW5nX3RvcCArIHRoaXMucGFkZGluZ19idXR0b20gKyB0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSA+IHRoaXMuY29udGVudC5oZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdfdG9wID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdfYnV0dG9tID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwicGFkZGluZ190b3DmiJZwYWRkaW5nX2J1dHRvbei/h+Wkp1wiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRSb3cgPSBNYXRoLmZsb29yKCh0aGlzLmNvbnRlbnQuaGVpZ2h0IC0gdGhpcy5wYWRkaW5nX3RvcCAtIHRoaXMucGFkZGluZ19idXR0b20pIC8gKHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRDb2wgPSBNYXRoLmNlaWwoZGF0YUxlbiAvIHRoaXMuZ3JpZFJvdyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQud2lkdGggPSB0aGlzLmdyaWRDb2wgKiB0aGlzLml0ZW1XaWR0aCArICh0aGlzLmdyaWRDb2wgLSAxKSAqIHRoaXMuc3BhY2VYICsgdGhpcy5wYWRkaW5nX2xlZnQgKyB0aGlzLnBhZGRpbmdfcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNwYXduQ291bnQgPSBNYXRoLnJvdW5kKHRoaXMuc2Nyb2xsVmlldy5ub2RlLndpZHRoIC8gKHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVgpKSAqIHRoaXMuZ3JpZFJvdyArIHRoaXMuZ3JpZFJvdyAqIDI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbGZTY3JvbGxWaWV3ID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAyICsgdGhpcy5pdGVtV2lkdGggLyAyICsgdGhpcy5zcGFjZVg7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUZ1biA9IHRoaXMudXBkYXRlR3JpZF9IO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5Yib5bu65YiX6KGoIFxyXG4gICAgICogQHBhcmFtIHN0YXJ0SW5kZXgg6LW35aeL5pi+56S655qE5pWw5o2u57Si5byVIDDooajnpLrnrKzkuIDpoblcclxuICAgICAqIEBwYXJhbSBvZmZzZXQgICAgIHNjcm9sbFZpZXflgY/np7vph49cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjcmVhdGVMaXN0KHN0YXJ0SW5kZXg6IG51bWJlciwgb2Zmc2V0OiBjYy5WZWMyKSB7XHJcbiAgICAgICAgLy/lvZPpnIDopoHmmL7npLrnmoTmlbDmja7plb/luqYgPiDomZrmi5/liJfooajplb/luqbvvIwg5Yig6Zmk5pyA5pyr5bC+5Yeg5Liq5pWw5o2u5pe277yM5YiX6KGo6ZyA6KaB6YeN572u5L2N572u5Yiwc2Nyb2xsVmlld+acgOW6leerr1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGggPiB0aGlzLnNwYXduQ291bnQgJiYgKHN0YXJ0SW5kZXggKyB0aGlzLnNwYXduQ291bnQgLSAxKSA+PSB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgc3RhcnRJbmRleCA9IHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCAtIHRoaXMuc3Bhd25Db3VudDtcclxuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5zY3JvbGxWaWV3LmdldE1heFNjcm9sbE9mZnNldCgpO1xyXG5cclxuICAgICAgICAgICAgLy/lvZPpnIDopoHmmL7npLrnmoTmlbDmja7plb/luqYgPD0g6Jma5ouf5YiX6KGo6ZW/5bqm77yMIOmakOiXj+WkmuS9meeahOiZmuaLn+WIl+ihqOmhuSBcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA8PSB0aGlzLnNwYXduQ291bnQpIHtcclxuICAgICAgICAgICAgc3RhcnRJbmRleCA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Bhd25Db3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBjYy5Ob2RlO1xyXG4gICAgICAgICAgICAvL+mcgOimgeaYvuekuueahOaVsOaNrue0ouW8leWcqOaVsOaNruiMg+WbtOWGhe+8jOWImWl0ZW3lrp7kvovmmL7npLrlh7rmnaVcclxuICAgICAgICAgICAgaWYgKGkgKyBzdGFydEluZGV4IDwgdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtTGlzdFtpXSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuZ2V0SXRlbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3QucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnBhcmVudCA9IHRoaXMuY29udGVudDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuaXRlbUxpc3RbaV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL+mcgOimgeaYvuekuueahOaVsOaNrue0ouW8lei2hei/h+S6huaVsOaNruiMg+WbtO+8jOWImWl0ZW3lrp7kvovpmpDol4/otbfmnaVcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vaXRlbeWunuS+i+aVsOmHjyA+IOmcgOimgeaYvuekuueahOaVsOaNrumHj1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbUxpc3QubGVuZ3RoID4gKHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCAtIHN0YXJ0SW5kZXgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuaXRlbUxpc3QucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtUG9vbC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaSArIHN0YXJ0SW5kZXg7XHJcbiAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2kgKyBzdGFydEluZGV4XTtcclxuICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgLy/lm6DkuLpjb250ZW5055qE6ZSa54K5WOaYrzDvvIzmiYDku6VpdGVt55qEeOWAvOaYr2NvbnRlbnQud2l0aC8y6KGo56S65bGF5Lit77yM6ZSa54K5WeaYrzHvvIzmiYDku6VpdGVt55qEeeWAvOS7jmNvbnRlbnTpobbpg6jlkJHkuIvmmK8w5Yiw6LSf5peg56m344CC5omA5LulaXRlbS55PSAtaXRlbS5oZWlnaHQvMuaXtu+8jOaYr+WcqGNvbnRlbnTnmoTpobbpg6jjgIJcclxuICAgICAgICAgICAgICAgIGl0ZW0uc2V0UG9zaXRpb24odGhpcy5jb250ZW50LndpZHRoIC8gMiwgLWl0ZW0uaGVpZ2h0ICogKDAuNSArIGkgKyBzdGFydEluZGV4KSAtIHRoaXMuc3BhY2VZICogKGkgKyBzdGFydEluZGV4KSAtIHRoaXMucGFkZGluZ190b3ApO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNldFBvc2l0aW9uKGl0ZW0ud2lkdGggKiAoMC41ICsgaSArIHN0YXJ0SW5kZXgpICsgdGhpcy5zcGFjZVggKiAoaSArIHN0YXJ0SW5kZXgpICsgdGhpcy5wYWRkaW5nX2xlZnQsIC10aGlzLmNvbnRlbnQuaGVpZ2h0IC8gMik7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLlZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJvdyA9IE1hdGguZmxvb3IoKGkgKyBzdGFydEluZGV4KSAvIHRoaXMuZ3JpZENvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbCA9IChpICsgc3RhcnRJbmRleCkgJSB0aGlzLmdyaWRDb2w7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5zZXRQb3NpdGlvbihpdGVtLndpZHRoICogKDAuNSArIGNvbCkgKyB0aGlzLnNwYWNlWCAqIGNvbCArIHRoaXMucGFkZGluZ19sZWZ0LCAtaXRlbS5oZWlnaHQgKiAoMC41ICsgcm93KSAtIHRoaXMuc3BhY2VZICogcm93IC0gdGhpcy5wYWRkaW5nX3RvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcm93ID0gKGkgKyBzdGFydEluZGV4KSAlIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgICAgICAgICB2YXIgY29sID0gTWF0aC5mbG9vcigoaSArIHN0YXJ0SW5kZXgpIC8gdGhpcy5ncmlkUm93KTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnNldFBvc2l0aW9uKGl0ZW0ud2lkdGggKiAoMC41ICsgY29sKSArIHRoaXMuc3BhY2VYICogY29sICsgdGhpcy5wYWRkaW5nX2xlZnQsIC1pdGVtLmhlaWdodCAqICgwLjUgKyByb3cpIC0gdGhpcy5zcGFjZVkgKiByb3cgLSB0aGlzLnBhZGRpbmdfdG9wKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2Nyb2xsVmlldy5zY3JvbGxUb09mZnNldChvZmZzZXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKuiOt+WPluS4gOS4quWIl+ihqOmhuSAqL1xyXG4gICAgcHJpdmF0ZSBnZXRJdGVtKCkge1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1Qb29sLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjYy5pbnN0YW50aWF0ZSh0aGlzLml0ZW1SZW5kZXIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLml0ZW1Qb29sLnBvcCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZHQpIHtcclxuICAgICAgICBpZiAodGhpcy5iU2Nyb2xsaW5nID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lciArPSBkdDtcclxuICAgICAgICBpZiAodGhpcy51cGRhdGVUaW1lciA8IHRoaXMudXBkYXRlSW50ZXJ2YWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyID0gMDtcclxuICAgICAgICB0aGlzLmJTY3JvbGxpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZ1bigpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2Nyb2xsaW5nKCkge1xyXG4gICAgICAgIHRoaXMuYlNjcm9sbGluZyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq5Z6C55u05o6S5YiXICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZVYoKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5pdGVtTGlzdDtcclxuICAgICAgICBsZXQgaXRlbTtcclxuICAgICAgICBsZXQgYnVmZmVyWm9uZSA9IHRoaXMuaGFsZlNjcm9sbFZpZXc7XHJcbiAgICAgICAgbGV0IGlzVXAgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC55ID4gdGhpcy5sYXN0Q29udGVudFBvc1k7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9ICh0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSkgKiBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpdGVtID0gaXRlbXNbaV07XHJcbiAgICAgICAgICAgIGxldCB2aWV3UG9zID0gdGhpcy5nZXRQb3NpdGlvbkluVmlldyhpdGVtKTtcclxuICAgICAgICAgICAgaWYgKGlzVXApIHtcclxuICAgICAgICAgICAgICAgIC8vaXRlbeS4iua7keaXtu+8jOi2heWHuuS6hnNjcm9sbFZpZXfkuIrovrnnlYzvvIzlsIZpdGVt56e75Yqo5Yiw5LiL5pa55aSN55So77yMaXRlbeenu+WKqOWIsOS4i+aWueeahOS9jee9ruW/hemhu+S4jei2hei/h2NvbnRlbnTnmoTkuIvovrnnlYxcclxuICAgICAgICAgICAgICAgIGlmICh2aWV3UG9zLnkgPiBidWZmZXJab25lICYmIGl0ZW0ueSAtIG9mZnNldCAtIHRoaXMucGFkZGluZ19idXR0b20gPiAtdGhpcy5jb250ZW50LmhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4ICsgaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ueSA9IGl0ZW0ueSAtIG9mZnNldDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vaXRlbeS4i+a7keaXtu+8jOi2heWHuuS6hnNjcm9sbFZpZXfkuIvovrnnlYzvvIzlsIZpdGVt56e75Yqo5Yiw5LiK5pa55aSN55So77yMaXRlbeenu+WKqOWIsOS4iuaWueeahOS9jee9ruW/hemhu+S4jei2hei/h2NvbnRlbnTnmoTkuIrovrnnlYxcclxuICAgICAgICAgICAgICAgIGlmICh2aWV3UG9zLnkgPCAtYnVmZmVyWm9uZSAmJiBpdGVtLnkgKyBvZmZzZXQgKyB0aGlzLnBhZGRpbmdfdG9wIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4IC0gaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ueSA9IGl0ZW0ueSArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxhc3RDb250ZW50UG9zWSA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50Lnk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq5rC05bmz5o6S5YiXICovXHJcbiAgICBwcml2YXRlIHVkcGF0ZUgoKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5pdGVtTGlzdDtcclxuICAgICAgICBsZXQgaXRlbTtcclxuICAgICAgICBsZXQgYnVmZmVyWm9uZSA9IHRoaXMuaGFsZlNjcm9sbFZpZXc7XHJcbiAgICAgICAgbGV0IGlzUmlnaHQgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC54ID4gdGhpcy5sYXN0Q29udGVudFBvc1g7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9ICh0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYKSAqIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtc1tpXTtcclxuICAgICAgICAgICAgbGV0IHZpZXdQb3MgPSB0aGlzLmdldFBvc2l0aW9uSW5WaWV3KGl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoaXNSaWdodCkge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5Y+z5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+WPs+i+ueeVjO+8jOWwhml0ZW3np7vliqjliLDlt6bmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5bem5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOW3pui+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueCA+IGJ1ZmZlclpvbmUgJiYgaXRlbS54IC0gb2Zmc2V0IC0gdGhpcy5wYWRkaW5nX2xlZnQgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggLSBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5bem5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+W3pui+ueeVjO+8jOWwhml0ZW3np7vliqjliLDlj7PmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5Y+z5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOWPs+i+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueCA8IC1idWZmZXJab25lICYmIGl0ZW0ueCArIG9mZnNldCArIHRoaXMucGFkZGluZ19yaWdodCA8IHRoaXMuY29udGVudC53aWR0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4ICsgaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxhc3RDb250ZW50UG9zWCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50Lng7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq572R5qC85Z6C55u05o6S5YiXICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZUdyaWRfVigpIHtcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgICAgIGxldCBpdGVtOiBjYy5Ob2RlO1xyXG4gICAgICAgIGxldCBidWZmZXJab25lID0gdGhpcy5oYWxmU2Nyb2xsVmlldztcclxuICAgICAgICBsZXQgaXNVcCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50LnkgPiB0aGlzLmxhc3RDb250ZW50UG9zWTtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gKHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZKSAqICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRDb2wpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuZ2V0UG9zaXRpb25JblZpZXcoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChpc1VwKSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3kuIrmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35LiK6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOS4i+aWueWkjeeUqO+8jGl0ZW3np7vliqjliLDkuIvmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5LiL6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy55ID4gYnVmZmVyWm9uZSAmJiBpdGVtLnkgLSBvZmZzZXQgLSB0aGlzLnBhZGRpbmdfYnV0dG9tID4gLXRoaXMuY29udGVudC5oZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCArICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRDb2wpICogdGhpcy5ncmlkQ29sO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7Ly9pdGVt5LiL5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+S4i+i+ueeVjO+8jOWwhml0ZW3np7vliqjliLDkuIrmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5LiK5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOS4iui+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueSA8IC1idWZmZXJab25lICYmIGl0ZW0ueSArIG9mZnNldCArIHRoaXMucGFkZGluZ190b3AgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggLSAodGhpcy5zcGF3bkNvdW50IC8gdGhpcy5ncmlkQ29sKSAqIHRoaXMuZ3JpZENvbDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueSA9IGl0ZW0ueSArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueSA9IGl0ZW0ueSArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NZID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueTtcclxuICAgIH1cclxuXHJcbiAgICAvKirnvZHmoLzmsLTlubPmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlR3JpZF9IKCkge1xyXG4gICAgICAgIGxldCBpdGVtcyA9IHRoaXMuaXRlbUxpc3Q7XHJcbiAgICAgICAgbGV0IGl0ZW07XHJcbiAgICAgICAgbGV0IGJ1ZmZlclpvbmUgPSB0aGlzLmhhbGZTY3JvbGxWaWV3O1xyXG4gICAgICAgIGxldCBpc1JpZ2h0ID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueCA+IHRoaXMubGFzdENvbnRlbnRQb3NYO1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkgKiAodGhpcy5zcGF3bkNvdW50IC8gdGhpcy5ncmlkUm93KTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtc1tpXTtcclxuICAgICAgICAgICAgbGV0IHZpZXdQb3MgPSB0aGlzLmdldFBvc2l0aW9uSW5WaWV3KGl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoaXNSaWdodCkge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5Y+z5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+WPs+i+ueeVjO+8jOWwhml0ZW3np7vliqjliLDlt6bmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5bem5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOW3pui+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueCA+IGJ1ZmZlclpvbmUgJiYgaXRlbS54IC0gb2Zmc2V0IC0gdGhpcy5wYWRkaW5nX2xlZnQgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggLSAodGhpcy5zcGF3bkNvdW50IC8gdGhpcy5ncmlkUm93KSAqIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCAtIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCAtIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5bem5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+W3pui+ueeVjO+8jOWwhml0ZW3np7vliqjliLDlj7PmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5Y+z5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOWPs+i+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueCA8IC1idWZmZXJab25lICYmIGl0ZW0ueCArIG9mZnNldCArIHRoaXMucGFkZGluZ19yaWdodCA8IHRoaXMuY29udGVudC53aWR0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4ICsgKHRoaXMuc3Bhd25Db3VudCAvIHRoaXMuZ3JpZFJvdykgKiB0aGlzLmdyaWRSb3c7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnggPSBpdGVtLnggKyBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGEgPSB0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnggPSBpdGVtLnggKyBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxhc3RDb250ZW50UG9zWCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50Lng7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq6I635Y+WaXRlbeWcqHNjcm9sbFZpZXfnmoTlsYDpg6jlnZDmoIcgKi9cclxuICAgIHByaXZhdGUgZ2V0UG9zaXRpb25JblZpZXcoaXRlbSkge1xyXG4gICAgICAgIGxldCB3b3JsZFBvcyA9IGl0ZW0ucGFyZW50LmNvbnZlcnRUb1dvcmxkU3BhY2VBUihpdGVtLnBvc2l0aW9uKTtcclxuICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuc2Nyb2xsVmlldy5ub2RlLmNvbnZlcnRUb05vZGVTcGFjZUFSKHdvcmxkUG9zKTtcclxuICAgICAgICByZXR1cm4gdmlld1BvcztcclxuICAgIH1cclxuXHJcbiAgICAvKirojrflj5bliJfooajmlbDmja4gKi9cclxuICAgIHB1YmxpYyBnZXRMaXN0RGF0YSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pdGVtRGF0YUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlop7liqDkuIDpobnmlbDmja7liLDliJfooajnmoTmnKvlsL5cclxuICAgICAqIEBwYXJhbSBkYXRhIOaVsOaNrlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkSXRlbShkYXRhOiBhbnkpIHtcclxuICAgICAgICB0aGlzLml0ZW1EYXRhTGlzdC5wdXNoKGRhdGEpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5aKe5Yqg5LiA6aG55pWw5o2u5Yiw5YiX6KGo5oyH5a6a5L2N572uXHJcbiAgICAgKiBAcGFyYW0gaW5kZXggICDkvY3nva7vvIww6KGo56S656ysMemhuVxyXG4gICAgICogQHBhcmFtIGRhdGEgIOaVsOaNrlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkSXRlbUF0KGluZGV4OiBudW1iZXIsIGRhdGE6IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpbmRleF0gIT0gbnVsbCB8fCB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGggPT0gaW5kZXgpIHtcclxuICAgICAgICAgICAgdGhpcy5pdGVtRGF0YUxpc3Quc3BsaWNlKGluZGV4LCAxLCBkYXRhKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5Yig6Zmk5LiA6aG55pWw5o2uXHJcbiAgICAgKiBAcGFyYW0gaW5kZXgg5Yig6Zmk6aG555qE5L2N572uICww6KGo56S656ysMemhuVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVsZXRlSXRlbShpbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbURhdGFMaXN0LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaUueWPmOS4gOmhueaVsOaNrlxyXG4gICAgICogQHBhcmFtIGluZGV4ICAg5L2N572uLDDooajnpLrnrKwx6aG5XHJcbiAgICAgKiBAcGFyYW0gZGF0YSAg5pu/5o2i55qE5pWw5o2uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaGFuZ2VJdGVtKGluZGV4OiBudW1iZXIsIGRhdGE6IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW1EYXRhTGlzdFtpbmRleF0gPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoq6I635Y+W56ys5LiA5LiqSXRlbeeahOS9jee9riAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVDb250ZW50KCkge1xyXG4gICAgICAgIC8v5pi+56S65YiX6KGo5a6e5L6L5Li6MOS4qlxyXG4gICAgICAgIGlmICh0aGlzLml0ZW1MaXN0Lmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRMaXN0UGFyYW0oKTtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVMaXN0KDAsIG5ldyBjYy5WZWMyKDAsIDApKTtcclxuICAgICAgICAgICAgLy/mmL7npLrliJfooajnmoTlrp7kvovkuI3kuLow5Liq77yM5YiZ6ZyA6KaB6YeN5paw5o6S5YiXaXRlbeWunuS+i+aVsOe7hFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi55IC0gYS55O1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS54IC0gYi54O1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLlZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS54IC0gYi54O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGIueSAtIGEueTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi55IC0gYS55O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGEueCAtIGIueDtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jb3VudExpc3RQYXJhbSgpO1xyXG5cclxuICAgICAgICAgICAgLy/ojrflj5bnrKzkuIDkuKppdGVt5a6e5L6L6ZyA6KaB5pi+56S655qE5pWw5o2u57Si5byVXHJcbiAgICAgICAgICAgIHZhciBzdGFydEluZGV4ID0gdGhpcy5pdGVtTGlzdFswXS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcikuaXRlbUluZGV4O1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkICYmIHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggKz0gKHN0YXJ0SW5kZXggKyB0aGlzLnNwYXduQ291bnQpICUgdGhpcy5ncmlkQ29sO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkICYmIHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSAoc3RhcnRJbmRleCArIHRoaXMuc3Bhd25Db3VudCkgJSB0aGlzLmdyaWRSb3c7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vZ2V0U2Nyb2xsT2Zmc2V0KCnlkoxzY3JvbGxUb09mZnNldCgp55qEeOWAvOaYr+ebuOWPjeeahFxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0OiBjYy5WZWMyID0gdGhpcy5zY3JvbGxWaWV3LmdldFNjcm9sbE9mZnNldCgpO1xyXG4gICAgICAgICAgICBvZmZzZXQueCA9IC0gb2Zmc2V0Lng7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUxpc3Qoc3RhcnRJbmRleCwgb2Zmc2V0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoq6ZSA5q+BICovXHJcbiAgICBwdWJsaWMgb25EZXN0cm95KCkge1xyXG4gICAgICAgIC8v5riF55CG5YiX6KGo6aG5XHJcbiAgICAgICAgbGV0IGxlbiA9IHRoaXMuaXRlbUxpc3QubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGNjLmlzVmFsaWQodGhpcy5pdGVtTGlzdFtpXSwgdHJ1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbUxpc3RbaV0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXRlbUxpc3QubGVuZ3RoID0gMDtcclxuICAgICAgICAvL+a4heeQhuWvueixoeaxoFxyXG4gICAgICAgIGxlbiA9IHRoaXMuaXRlbVBvb2wubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGNjLmlzVmFsaWQodGhpcy5pdGVtUG9vbFtpXSwgdHJ1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbVBvb2xbaV0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXRlbVBvb2wubGVuZ3RoID0gMDtcclxuICAgICAgICAvL+a4heeQhuWIl+ihqOaVsOaNrlxyXG4gICAgICAgIHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcbn1cclxuIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/tool/DynamicAtlasManager.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '3ffacOneORCf6Bc1LFhTCCQ', 'DynamicAtlasManager'); -// Script/tool/DynamicAtlasManager.js - -"use strict"; - -cc.Class({ - "extends": cc.Component, - properties: {}, - onLoad: function onLoad() { - cc.dynamicAtlasManager.enabled = false; - } -}); - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFx0b29sXFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxTQURQO0FBR0xDLEVBQUFBLFVBQVUsRUFBRSxFQUhQO0FBTUxDLEVBQUFBLE1BTkssb0JBTUs7QUFDTkosSUFBQUEsRUFBRSxDQUFDSyxtQkFBSCxDQUF1QkMsT0FBdkIsR0FBaUMsS0FBakM7QUFDSDtBQVJJLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICB9LFxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZHluYW1pY0F0bGFzTWFuYWdlci5lbmFibGVkID0gZmFsc2U7XHJcbiAgICB9LFxyXG59KTtcclxuIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/tool/Shake.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '61affD5SO9Ipo0fGmIeTFTZ', 'Shake'); -// Script/tool/Shake.js - -"use strict"; - -/** - * 自定义抖动效果 - */ -var Shake = cc.Class({ - "extends": cc.Component, - properties: { - //抖动时间 - duration: 0, - //X轴抖动范围 - shakeX: 0, - shakeY: 0 - }, - shake: function shake(callback) { - if (this.shaking) { - return; - } - - this.callback = callback; - this.shaking = true; - this.dtCost = 0; - this.nodeInitialPos = this.node.getPosition(); - this.unschedule(this.doSchedule); - this.schedule(this.doSchedule, 0, cc.macro.REPEAT_FOREVER, 0); - }, - doSchedule: function doSchedule(dt) { - var dt2 = dt * 50; - var randX = this.getRandomStrength(-this.shakeX, this.shakeX) * dt2; - var randY = this.getRandomStrength(-this.shakeY, this.shakeY) * dt2; - this.node.setPosition(cc.pAdd(this.nodeInitialPos, cc.v2(randX, randY))); - this.dtCost += dt; - - if (this.dtCost >= this.duration) { - this.unschedule(this.doSchedule); - this.node.setPosition(this.nodeInitialPos); - this.shaking = false; - - if (this.callback) { - this.callback(); - } - } - }, - //获取两个数间的随机值 - getRandomStrength: function getRandomStrength(min, max) { - return Math.random() * (max - min + 1) + min; - } -}); - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFx0b29sXFxTaGFrZS5qcyJdLCJuYW1lcyI6WyJTaGFrZSIsImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwiZHVyYXRpb24iLCJzaGFrZVgiLCJzaGFrZVkiLCJzaGFrZSIsImNhbGxiYWNrIiwic2hha2luZyIsImR0Q29zdCIsIm5vZGVJbml0aWFsUG9zIiwibm9kZSIsImdldFBvc2l0aW9uIiwidW5zY2hlZHVsZSIsImRvU2NoZWR1bGUiLCJzY2hlZHVsZSIsIm1hY3JvIiwiUkVQRUFUX0ZPUkVWRVIiLCJkdCIsImR0MiIsInJhbmRYIiwiZ2V0UmFuZG9tU3RyZW5ndGgiLCJyYW5kWSIsInNldFBvc2l0aW9uIiwicEFkZCIsInYyIiwibWluIiwibWF4IiwiTWF0aCIsInJhbmRvbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxLQUFLLEdBQUdDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ2pCLGFBQVNELEVBQUUsQ0FBQ0UsU0FESztBQUdqQkMsRUFBQUEsVUFBVSxFQUFFO0FBQ1I7QUFDQUMsSUFBQUEsUUFBUSxFQUFFLENBRkY7QUFHUjtBQUNBQyxJQUFBQSxNQUFNLEVBQUUsQ0FKQTtBQUtSQyxJQUFBQSxNQUFNLEVBQUU7QUFMQSxHQUhLO0FBV2pCQyxFQUFBQSxLQUFLLEVBQUUsZUFBVUMsUUFBVixFQUFvQjtBQUN2QixRQUFHLEtBQUtDLE9BQVIsRUFBZ0I7QUFDWjtBQUNIOztBQUNELFNBQUtELFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDQSxTQUFLQyxNQUFMLEdBQWMsQ0FBZDtBQUNBLFNBQUtDLGNBQUwsR0FBc0IsS0FBS0MsSUFBTCxDQUFVQyxXQUFWLEVBQXRCO0FBQ0EsU0FBS0MsVUFBTCxDQUFnQixLQUFLQyxVQUFyQjtBQUNBLFNBQUtDLFFBQUwsQ0FBYyxLQUFLRCxVQUFuQixFQUErQixDQUEvQixFQUFrQ2YsRUFBRSxDQUFDaUIsS0FBSCxDQUFTQyxjQUEzQyxFQUEyRCxDQUEzRDtBQUNILEdBckJnQjtBQXNCakJILEVBQUFBLFVBQVUsRUFBRSxvQkFBVUksRUFBVixFQUFjO0FBQ3RCLFFBQUlDLEdBQUcsR0FBR0QsRUFBRSxHQUFHLEVBQWY7QUFDQSxRQUFJRSxLQUFLLEdBQUcsS0FBS0MsaUJBQUwsQ0FBdUIsQ0FBQyxLQUFLakIsTUFBN0IsRUFBcUMsS0FBS0EsTUFBMUMsSUFBb0RlLEdBQWhFO0FBQ0EsUUFBSUcsS0FBSyxHQUFHLEtBQUtELGlCQUFMLENBQXVCLENBQUMsS0FBS2hCLE1BQTdCLEVBQXFDLEtBQUtBLE1BQTFDLElBQW9EYyxHQUFoRTtBQUNBLFNBQUtSLElBQUwsQ0FBVVksV0FBVixDQUFzQnhCLEVBQUUsQ0FBQ3lCLElBQUgsQ0FBUSxLQUFLZCxjQUFiLEVBQTZCWCxFQUFFLENBQUMwQixFQUFILENBQU1MLEtBQU4sRUFBYUUsS0FBYixDQUE3QixDQUF0QjtBQUNBLFNBQUtiLE1BQUwsSUFBZVMsRUFBZjs7QUFDQSxRQUFJLEtBQUtULE1BQUwsSUFBZSxLQUFLTixRQUF4QixFQUFrQztBQUM5QixXQUFLVSxVQUFMLENBQWdCLEtBQUtDLFVBQXJCO0FBQ0EsV0FBS0gsSUFBTCxDQUFVWSxXQUFWLENBQXNCLEtBQUtiLGNBQTNCO0FBQ0EsV0FBS0YsT0FBTCxHQUFlLEtBQWY7O0FBQ0EsVUFBRyxLQUFLRCxRQUFSLEVBQWlCO0FBQ2IsYUFBS0EsUUFBTDtBQUNIO0FBQ0o7QUFDSixHQXBDZ0I7QUFxQ2pCO0FBQ0FjLEVBQUFBLGlCQUFpQixFQUFFLDJCQUFVSyxHQUFWLEVBQWVDLEdBQWYsRUFBb0I7QUFDbkMsV0FBT0MsSUFBSSxDQUFDQyxNQUFMLE1BQWlCRixHQUFHLEdBQUdELEdBQU4sR0FBWSxDQUE3QixJQUFrQ0EsR0FBekM7QUFDSDtBQXhDZ0IsQ0FBVCxDQUFaIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICog6Ieq5a6a5LmJ5oqW5Yqo5pWI5p6cXHJcbiAqL1xyXG52YXIgU2hha2UgPSBjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcblxyXG4gICAgcHJvcGVydGllczoge1xyXG4gICAgICAgIC8v5oqW5Yqo5pe26Ze0XHJcbiAgICAgICAgZHVyYXRpb246IDAsXHJcbiAgICAgICAgLy9Y6L205oqW5Yqo6IyD5Zu0XHJcbiAgICAgICAgc2hha2VYOiAwLFxyXG4gICAgICAgIHNoYWtlWTogMCxcclxuICAgIH0sXHJcblxyXG4gICAgc2hha2U6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xyXG4gICAgICAgIGlmKHRoaXMuc2hha2luZyl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuc2hha2luZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5kdENvc3QgPSAwO1xyXG4gICAgICAgIHRoaXMubm9kZUluaXRpYWxQb3MgPSB0aGlzLm5vZGUuZ2V0UG9zaXRpb24oKTtcclxuICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5kb1NjaGVkdWxlKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuZG9TY2hlZHVsZSwgMCwgY2MubWFjcm8uUkVQRUFUX0ZPUkVWRVIsIDApO1xyXG4gICAgfSxcclxuICAgIGRvU2NoZWR1bGU6IGZ1bmN0aW9uIChkdCkge1xyXG4gICAgICAgIHZhciBkdDIgPSBkdCAqIDUwO1xyXG4gICAgICAgIHZhciByYW5kWCA9IHRoaXMuZ2V0UmFuZG9tU3RyZW5ndGgoLXRoaXMuc2hha2VYLCB0aGlzLnNoYWtlWCkgKiBkdDI7XHJcbiAgICAgICAgdmFyIHJhbmRZID0gdGhpcy5nZXRSYW5kb21TdHJlbmd0aCgtdGhpcy5zaGFrZVksIHRoaXMuc2hha2VZKSAqIGR0MjtcclxuICAgICAgICB0aGlzLm5vZGUuc2V0UG9zaXRpb24oY2MucEFkZCh0aGlzLm5vZGVJbml0aWFsUG9zLCBjYy52MihyYW5kWCwgcmFuZFkpKSk7XHJcbiAgICAgICAgdGhpcy5kdENvc3QgKz0gZHQ7XHJcbiAgICAgICAgaWYgKHRoaXMuZHRDb3N0ID49IHRoaXMuZHVyYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMuZG9TY2hlZHVsZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zZXRQb3NpdGlvbih0aGlzLm5vZGVJbml0aWFsUG9zKTtcclxuICAgICAgICAgICAgdGhpcy5zaGFraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5Lik5Liq5pWw6Ze055qE6ZqP5py65YC8XHJcbiAgICBnZXRSYW5kb21TdHJlbmd0aDogZnVuY3Rpb24gKG1pbiwgbWF4KSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkgKyBtaW47XHJcbiAgICB9LFxyXG59KTtcclxuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGtDQUFrQztBQUNsQyw0Q0FBNEM7QUFDNUMsSUFBSSxjQUFjLEdBQUc7SUFDakIsVUFBVSxFQUFHLFVBQVMsR0FBRztRQUNyQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBRyxNQUFNLEVBQUM7WUFDUixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxVQUFVLEVBQUcsVUFBUyxHQUFHLEVBQUMsS0FBSztRQUMzQixVQUFVO1FBQ1YsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3RDLFlBQVk7UUFDWiwrQ0FBK0M7UUFDL0MsWUFBWTtJQUNoQixDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gdmFyIGplcXVyeSA9IHJlcXVpcmUoXCJqcXVlcnlcIik7XG4vLyB2YXIgY29pbk1hbmFnZXIgPSByZXF1aXJlKFwiY29pbk1hbmFnZXJcIik7XG52YXIgU3RvcmFnZU1lc3NhZ2UgPSB7XG4gICAgZ2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xuICAgICAgICBpZihjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSl7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZihyZXN1bHQpe1xuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSx2YWx1ZSl7XG4gICAgICAgIC8v5Li75Yqo5ouJ6LW35YiG5Lqr5o6l5Y+jXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0ZW1wKVxuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgLy8gdmFyIHRlbXAgPSBjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgfSxcbiAgICByZW1vdmVTdG9yYWdlIDogZnVuY3Rpb24oa2V5KXtcbiAgICAgIC8v5Li75Yqo5Yig6Zmk5raI5oGv5o6l5Y+jXG4gICAgICBpZihjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSl7XG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gICAgICB9XG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IFN0b3JhZ2VNZXNzYWdlIH07Il19 //------QC-SOURCE-SPLIT------ diff --git a/temp/quick-scripts/dst/__quick_compile__.js b/temp/quick-scripts/dst/__quick_compile__.js index c7128f1..72f3f0f 100644 --- a/temp/quick-scripts/dst/__quick_compile__.js +++ b/temp/quick-scripts/dst/__quick_compile__.js @@ -1,6 +1,6 @@ (function () { -var scripts = [{"deps":{"./assets/Script/GameData":7,"./assets/Script/GameManager":11,"./assets/Script/GameOver":3,"./assets/Script/GuideManager":14,"./assets/Script/Helloworld":9,"./assets/Script/Load":12,"./assets/Script/Notification":8,"./assets/Script/Storage":10,"./assets/Script/Sun":16,"./assets/Script/test":15,"./assets/Script/BallAudioManager":13,"./assets/Script/ListView/List":18,"./assets/Script/ListView/ItemRender":1,"./assets/Script/crypto/serverAPI":4,"./assets/Script/crypto/crypto-js.min":17,"./assets/Script/tool/GameTool":6,"./assets/Script/tool/Shake":20,"./assets/Script/tool/DynamicAtlasManager":19,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event":5,"./assets/Script/CtrlFluxayTexture":2},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/Script/ListView/ItemRender.js"},{"deps":{},"path":"preview-scripts/assets/Script/CtrlFluxayTexture.js"},{"deps":{"./GameData":7,"./crypto/serverAPI":4},"path":"preview-scripts/assets/Script/GameOver.js"},{"deps":{"../GameData":7,"./crypto-js.min.js":17},"path":"preview-scripts/assets/Script/crypto/serverAPI.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js"},{"deps":{"Storage":10},"path":"preview-scripts/assets/Script/tool/GameTool.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameData.js"},{"deps":{},"path":"preview-scripts/assets/Script/Notification.js"},{"deps":{"./GameData":7,"./ListView/List":18,"./crypto/serverAPI":4},"path":"preview-scripts/assets/Script/Helloworld.js"},{"deps":{},"path":"preview-scripts/assets/Script/Storage.js"},{"deps":{"./GameData":7,"./Notification":8,"./crypto/serverAPI":4},"path":"preview-scripts/assets/Script/GameManager.js"},{"deps":{"./GameData":7},"path":"preview-scripts/assets/Script/Load.js"},{"deps":{},"path":"preview-scripts/assets/Script/BallAudioManager.js"},{"deps":{"./GameData":7,"./Notification":8},"path":"preview-scripts/assets/Script/GuideManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/test.js"},{"deps":{"./Notification":8},"path":"preview-scripts/assets/Script/Sun.js"},{"deps":{},"path":"preview-scripts/assets/Script/crypto/crypto-js.min.js"},{"deps":{"./ItemRender":1},"path":"preview-scripts/assets/Script/ListView/List.js"},{"deps":{},"path":"preview-scripts/assets/Script/tool/DynamicAtlasManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/tool/Shake.js"}]; +var scripts = [{"deps":{"./assets/Script/GameData":11,"./assets/Script/GameManager":14,"./assets/Script/GameOver":4,"./assets/Script/GuideManager":2,"./assets/Script/Helloworld":9,"./assets/Script/Load":15,"./assets/Script/Notification":16,"./assets/Script/Storage":20,"./assets/Script/Sun":8,"./assets/Script/test":7,"./assets/Script/BallAudioManager":10,"./assets/Script/ListView/List":12,"./assets/Script/ListView/ItemRender":1,"./assets/Script/crypto/serverAPI":5,"./assets/Script/crypto/crypto-js.min":19,"./assets/Script/tool/GameTool":17,"./assets/Script/tool/Shake":13,"./assets/Script/tool/DynamicAtlasManager":6,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event":3,"./assets/Script/CtrlFluxayTexture":18},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/Script/ListView/ItemRender.js"},{"deps":{"./GameData":11,"./Notification":16},"path":"preview-scripts/assets/Script/GuideManager.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js"},{"deps":{"./GameData":11,"./crypto/serverAPI":5},"path":"preview-scripts/assets/Script/GameOver.js"},{"deps":{"../GameData":11,"./crypto-js.min.js":19},"path":"preview-scripts/assets/Script/crypto/serverAPI.js"},{"deps":{},"path":"preview-scripts/assets/Script/tool/DynamicAtlasManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/test.js"},{"deps":{"./Notification":16},"path":"preview-scripts/assets/Script/Sun.js"},{"deps":{"./GameData":11,"./ListView/List":12,"./crypto/serverAPI":5},"path":"preview-scripts/assets/Script/Helloworld.js"},{"deps":{},"path":"preview-scripts/assets/Script/BallAudioManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameData.js"},{"deps":{"./ItemRender":1},"path":"preview-scripts/assets/Script/ListView/List.js"},{"deps":{},"path":"preview-scripts/assets/Script/tool/Shake.js"},{"deps":{"./GameData":11,"./Notification":16,"./crypto/serverAPI":5},"path":"preview-scripts/assets/Script/GameManager.js"},{"deps":{"./GameData":11,"./Storage":20},"path":"preview-scripts/assets/Script/Load.js"},{"deps":{},"path":"preview-scripts/assets/Script/Notification.js"},{"deps":{"Storage":20},"path":"preview-scripts/assets/Script/tool/GameTool.js"},{"deps":{},"path":"preview-scripts/assets/Script/CtrlFluxayTexture.js"},{"deps":{},"path":"preview-scripts/assets/Script/crypto/crypto-js.min.js"},{"deps":{},"path":"preview-scripts/assets/Script/Storage.js"}]; var entries = ["preview-scripts/__qc_index__.js"]; var bundleScript = 'preview-scripts/__qc_bundle__.js'; diff --git a/temp/quick-scripts/dst/assets/Script/GameManager.js b/temp/quick-scripts/dst/assets/Script/GameManager.js index 3467f6b..62bfede 100644 --- a/temp/quick-scripts/dst/assets/Script/GameManager.js +++ b/temp/quick-scripts/dst/assets/Script/GameManager.js @@ -269,19 +269,23 @@ var GameManager = /** @class */ (function (_super) { } this.clickNow += 1; // GameData._instance.GM_INFO.total += 1; - setTimeout(function () { - if (_this.ball_Array[_this.clickNow - 1]) - _this.ball_Array[_this.clickNow - 1].getChildByName("guang").active = false; - }, 200); + if (this.ball_Array[this.clickNow - 1]) + this.ball_Array[this.clickNow - 1].getChildByName("guang").active = false; + // setTimeout(() => { + // }, 200); if (this.clickNow == this.now_Array.length) { this.pause = true; GameData_1.default._instance.GM_INFO.total += this.clickNow; this.overTime = this.getTime(); - GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); - console.log(GameData_1.default._instance.GM_INFO.mean_Time); + if (this.startTime > 0 && this.overTime > 0) { + GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); + } + // console.log("成功",GameData._instance.GM_INFO.mean_Time,this.overTime,this.startTime); + // console.log(GameData._instance.GM_INFO.mean_Time); var finish_time = parseInt((this.overTime - this.startTime) / 100 + ""); this.startTime = 0; this.overTime = 0; + // console.log("33333333"); var color = "y"; if (this.level < 4 && this.level > 1) color = "yr"; @@ -365,8 +369,9 @@ var GameManager = /** @class */ (function (_super) { GameData_1.default._instance.AudioManager.playWarning(); this.begin = false; this.overTime = this.getTime(); - GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); - console.log(GameData_1.default._instance.GM_INFO.mean_Time); + if (this.startTime > 0 && this.overTime > 0) { + GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); + } var finish_time = parseInt((this.overTime - this.startTime) / 100 + ""); this.startTime = 0; this.overTime = 0; @@ -561,27 +566,24 @@ var GameManager = /** @class */ (function (_super) { //0 1 2 3 4 5 6 7 8 9 //可移动区分 var pos_1 = cc.v2(0, 0); - if (info.number == 3) - this.moveArray = [0, 1, 0]; - else if (info.number == 4) - this.moveArray = [0, 0, 1, 0]; - else if (info.number == 5) - this.moveArray = [0, 0, 1, 0, 0]; - else if (info.number == 5) - this.moveArray = [0, 0, 1, 0, 0]; - else if (info.number == 6) - this.moveArray = [0, 0, 1, 1, 0, 0]; - else if (info.number == 7) - this.moveArray = [0, 0, 1, 1, 1, 0, 0]; - else if (info.number == 8) - this.moveArray = [0, 0, 0, 1, 1, 1, 1, 0]; - else if (info.number == 9) - this.moveArray = [0, 0, 1, 1, 1, 1, 1, 0, 0]; - else if (info.number == 10) - this.moveArray = [0, 0, 0, 1, 1, 1, 1, 1, 0, 0]; + for (var z = 0; z < info.number; z++) { + this.moveArray[z] = 0; + } + for (var p = 0; p < info.moveNumber; p++) { + this.moveArray[info.number - 1 - p] = 1; + } var timeOut = 0; //打乱可移动顺序 - // this.moveArray .sort(() => Math.random() - 0.5); + this.moveArray.sort(function () { return Math.random() - 0.5; }); + if (this.moveArray[0] == 1) { + for (var r = info.number - 1; r >= 0; r--) { + if (this.moveArray[r] == 0) { + this.moveArray[r] = 1; + this.moveArray[0] = 0; + r = -1; + } + } + } // debugger; //设置重叠 // this.repeat = -1; @@ -983,12 +985,15 @@ var GameManager = /** @class */ (function (_super) { this.unschedule(this.updateCountDownTime); this.setLoss(); var time = 0; - console.log(GameData_1.default._instance.GM_INFO.mean_Time, this.clickCount); + // console.log(GameData._instance.GM_INFO.mean_Time,this.clickCount); if (this.clickCount > 0) time = parseInt(GameData_1.default._instance.GM_INFO.mean_Time / this.clickCount + ""); GameData_1.default._instance.GM_INFO.mean_Time = parseInt(time / 100 + ""); GameData_1.default._instance.GM_INFO.mean_Time = GameData_1.default._instance.GM_INFO.mean_Time / 10; - console.log(GameData_1.default._instance.GM_INFO.mean_Time); + // console.log( GameData._instance.GM_INFO.mean_Time,time); + // debugger; + if (time > 10000) + time = (Math.random() * 10 + 5) * 100; this.setRank(time); } } @@ -996,11 +1001,12 @@ var GameManager = /** @class */ (function (_super) { GameManager.prototype.setData = function () { var data = GameData_1.default._instance.GAME_DATA; var matchId = this.getMatchId(); + console.log(matchId); var postData = { "matchId": matchId, "data": data }; - // console.log("上传数据:",postData) + console.log("上传数据:"); serverAPI_1.default.uploadUserLogData(postData, function () { }); }; GameManager.prototype.getMatchId = function () { @@ -1009,14 +1015,24 @@ var GameManager = /** @class */ (function (_super) { matchId = this.setMatchId(); } else { - var char = parseInt(matchId[10]); - char += 1; - matchId = matchId.slice(0, 10) + char + ""; - GameData_1.default._instance.GM_INFO.matchId = matchId; - cc.sys.localStorage.setItem("matchId", matchId); + if (this.containsNanana(matchId) == true) { + matchId = this.setMatchId(); + } + else { + var char = parseInt(matchId[10]); + if (this.round == 1) { + char += 1; + } + matchId = matchId.slice(0, 10) + char + ""; + GameData_1.default._instance.GM_INFO.matchId = matchId; + cc.sys.localStorage.setItem("matchId", matchId); + } } return matchId; }; + GameManager.prototype.containsNanana = function (str) { + return /na/i.test(str); + }; GameManager.prototype.setMatchId = function () { // 定义包含可用字符的字符集 var characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; @@ -1044,7 +1060,7 @@ var GameManager = /** @class */ (function (_super) { "totalSunCount": GameData_1.default._instance.GM_INFO.total, "success": GameData_1.default._instance.GM_INFO.success }; - console.log(postData); + // console.log(postData); serverAPI_1.default.rankData(1, function () { }, postData); this.node.getChildByName("GameOver").active = true; this.node.getChildByName("GameOver").opacity = 0; @@ -1060,20 +1076,6 @@ var GameManager = /** @class */ (function (_super) { GameManager.prototype.outPut = function () { var data = GameData_1.default._instance.CLICK_DATA; GameData_1.default._instance.GAME_DATA = []; - // if(data.succeed == true) this.label1.string = "成功/失败:成功"; - // else if(data.succeed == false) this.label1.string = "成功/失败:失败"; - // this.label2.string = "太阳总数量:"+data.sun_total; - // this.label3.string = "太阳移动数量:"+data.sun_move; - // this.label4.string = "太阳移动速度:"+data.sun_speed; - // this.label5.string = "太阳重叠个数:"+data.sun_overlap; - // if(data.sun_color == "y") this.label6.string = "太阳颜色:yellow"; - // else if(data.sun_color == "yr") this.label6.string = "太阳颜色:yellow,red"; - // else if(data.sun_color == "yrb") this.label6.string = "太阳颜色:yellow,red,black"; - // this.label7.string = "完成时间:"+data.finish_time+"s"; - // this.label8.string = "难度等级:"+data.sun_difficulty+"级"; - // if(data.sun_color == "y") console.log("太阳颜色:","yellow" ); - // else if(data.sun_color == "yr") console.log("太阳颜色:","yellow,red" ); - // else if(data.sun_color == "yrb") console.log("太阳颜色:","yellow,red,black" ); GameData_1.default._instance.GAME_DATA.push(GameData_1.default._instance.CLICK_DATA); GameData_1.default._instance.CLICK_init(); }; @@ -1135,4 +1137,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUMxQyx1Q0FBa0M7QUFDbEMsK0NBQThDO0FBQzlDLGdEQUEwQztBQUUxQztJQUF5QywrQkFBWTtJQUFyRDtRQUFBLHFFQTBtQ0M7UUF2bUNHLFVBQUksR0FBWSxJQUFJLENBQUM7UUFFckIsVUFBSSxHQUFjLElBQUksQ0FBQztRQUV2QixVQUFJLEdBQWMsSUFBSSxDQUFDO1FBRXZCLFVBQUksR0FBYyxJQUFJLENBQUM7UUFFdkIsZ0JBQVUsR0FBYyxJQUFJLENBQUM7UUFFN0IsU0FBRyxHQUFZLElBQUksQ0FBQztRQUVwQixTQUFHLEdBQVksSUFBSSxDQUFDO1FBQ3BCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFDcEIsVUFBSSxHQUFhLElBQUksQ0FBQztRQUV0Qix3QkFBd0I7UUFDeEIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFVBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsVUFBSSxHQUFZLEtBQUssQ0FBQztRQXNCdEIsZ0JBQVUsR0FBYSxJQUFJLENBQUM7O0lBNmpDaEMsQ0FBQztJQXJqQ0csNEJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCwyQkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCx5QkFBRyxHQUFIO1FBQ0ksSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMs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QUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztxQkFDekMsSUFBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUM7b0JBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNoRCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNuRCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNuRCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztxQkFDckQsSUFBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUM7b0JBQUUsSUFBSSxDQUFDLFNBQVMsR0FBSSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN2RCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN6RCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztv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WUFDbEMsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0MsSUFBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQztnQkFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ3pELFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0IsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFNLE9BQUEsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBbkIsQ0FBbUIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFNLE9BQUEsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBbkIsQ0FBbUIsQ0FBQyxDQUFDO1FBQzNDLElBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFHOUIsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFDaEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9ILElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxD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QyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoRTtJQUNMLENBQUM7SUFHRCw4QkFBUSxHQUFSO1FBQ0ksMkJBQVksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakQsd0RBQXdEO0lBQzVELENBQUM7SUFFRCwrQkFBUyxHQUFUO1FBQ0ksdURBQXVEO1FBQ3ZELDJCQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUdELDRCQUFNLEdBQU4sVUFBUSxFQUFFO0lBRVYsQ0FBQztJQXRtQ0Q7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs2Q0FDRztJQUVyQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDOzZDQUNHO0lBRXZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7NkNBQ0c7SUFFdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzs2Q0FDRztJQUV2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO21EQUNTO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7NENBQ0U7SUFnQ3BCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7bURBQ1M7SUE3Q1gsV0FBVztRQUQvQixPQUFPO09BQ2EsV0FBVyxDQTBtQy9CO0lBQUQsa0JBQUM7Q0ExbUNELEFBMG1DQyxDQTFtQ3dDLEVBQUUsQ0FBQyxTQUFTLEdBMG1DcEQ7a0JBMW1Db0IsV0FBVyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5pbXBvcnQgR2FtZURhdGEgZnJvbSAnLi9HYW1lRGF0YSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4vTm90aWZpY2F0aW9uJztcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gJy4vY3J5cHRvL3NlcnZlckFQSSc7XHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGJhbGw6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHFpdTE6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgcWl1MjogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBxaXUzOiBjYy5QcmVmYWIgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIGxpbmVQcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGhpdDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgYmcxOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIGJnMjogY2MuTm9kZSA9IG51bGw7XHJcbiAgICB0aW1lOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcbiAgICBiZWdpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgZnVodW86IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIG92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGNvdW50VGltZTpudW1iZXI7XHJcbiAgICB0aW1lQ291bnQ6bnVtYmVyO1xyXG4gICAgZml0VG9wOm51bWJlcjtcclxuICAgIGZpdEJvdDpudW1iZXI7XHJcbiAgICBsZXZlbDpudW1iZXI7XHJcbiAgICBjbGlja05vdzpudW1iZXI7XHJcbiAgICBzdGFydFRpbWU6bnVtYmVyO1xyXG4gICAgb3ZlclRpbWU6bnVtYmVyO1xyXG4gICAgd2luVGltZTpudW1iZXI7XHJcbiAgICBjbGlja0NvdW50Om51bWJlcjtcclxuICAgIHRpbWVTdGFydDpudW1iZXI7XHJcbiAgICByb3V0ZV9BcnJheTogYW55W107XHJcbiAgICBub3dfQXJyYXk6IGFueVtdO1xyXG4gICAgYmFsbF9BcnJheTogYW55W107XHJcbiAgICBMaW5lX0FycmF5OiBhbnlbXTtcclxuICAgIFBvc19BcnJheTogYW55W107XHJcbiAgICB0aW1lX0FycmF5OiBhbnlbXTtcclxuICAgIGNvbG9yX0FycmF5OiBhbnlbXTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGV2ZWxMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG4gICAgbW92ZUFycmF5OiBudW1iZXJbXTtcclxuICAgIHJlcGVhdDogbnVtYmVyO1xyXG4gICAgbnVtYmVyUmVwZWF0OiBudW1iZXI7XHJcbiAgICByb3VuZDogbnVtYmVyO1xyXG4gICAgcGF1c2U6IGJvb2xlYW47XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIHRoaXMuZml0KCk7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcbiAgICBmaXQoKXtcclxuICAgICAgICB0aGlzLmZpdFRvcCA9IDQ1MDsgIC8vNjAwXHJcbiAgICAgICAgdGhpcy5maXRCb3QgPSAtNjAwOyAvLy03MDBcclxuICAgICAgICB2YXIgamcgPSB0aGlzLnNldEZpdCgpO1xyXG4gICAgICAgIGlmKCFqZyl7XHJcbiAgICAgICAgICAgIHRoaXMuZml0VG9wID0gNjAwO1xyXG4gICAgICAgICAgICB0aGlzLmZpdEJvdCA9IC03MDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFNldFNjcmVlblJlc29sdXRpb25GbGFnICgpIHtcclxuICAgICAgICBsZXQgc2l6ZSA9IGNjLndpblNpemU7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gc2l6ZS53aWR0aDtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgaWYgKChoZWlnaHQgLyB3aWR0aCkgPiAoMTYuMiAvIDkpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICAvL+WIpOaWreWFqOmdouWxj+mAgumFjVxyXG4gICAgc2V0Rml0ICgpIHtcclxuICAgICAgICBsZXQgZmxhZyA9IHRoaXMuZ2V0U2V0U2NyZWVuUmVzb2x1dGlvbkZsYWcoKTtcclxuICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmbGFnO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yid5aeL5YyW5pWw5o2uXHJcbiAgICBpbml0KCl7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZU92ZXJcIikuekluZGV4ID0gMTAwO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVPdmVyXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYmFsbC56SW5kZXggPSAxMDA7XHJcbiAgICAgICAgdGhpcy5iZzEgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiZzFcIik7XHJcbiAgICAgICAgdGhpcy5iZzIgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiZzJcIik7XHJcbiAgICAgICAgdGhpcy50aW1lID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInNob3dCdG5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5iZWdpbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZnVodW8gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucm91bmQgPSAwOyBcclxuICAgICAgICB0aGlzLmxldmVsID0gMjtcclxuICAgICAgICB0aGlzLmNvdW50VGltZSA9IDYwO1xyXG4gICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbSAhPSAwKXtcclxuICAgICAgICAgICAgdGhpcy5sZXZlbCA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbTtcclxuICAgICAgICAgICAgLy8gdGhpcy5sZXZlbExhYmVsLnN0cmluZyA9IHRoaXMubGV2ZWwgKyBcIlwiO1xyXG4gICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b20gKz0gMTtcclxuICAgICAgICAgICAgdGhpcy5jb3VudFRpbWUgPSAxMjAwMDAwMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5sZXZlbExhYmVsLnN0cmluZyA9IHRoaXMubGV2ZWwgKyBcIlwiO1xyXG4gXHJcbiAgICAgICAgdGhpcy50aW1lQ291bnQgPSAwLjE7XHJcbiAgICAgICAgdGhpcy5jbGlja05vdyA9IDA7XHJcbiAgICAgICAgdGhpcy5jbGlja0NvdW50ID0gMDtcclxuICAgICAgICB0aGlzLnRpbWVTdGFydCA9IDA7XHJcbiAgICAgICAgdGhpcy5yZXBlYXQgPSAtMTtcclxuICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IC0xO1xyXG4gICAgICAgIHRoaXMucm91dGVfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLm1vdmVBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMubm93X0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5iYWxsX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5Qb3NfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLnRpbWVfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbG9yX0FycmF5ID0gW107XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdBTUVfREFUQSA9IFtdO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnN1Y2Nlc3MgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5vdmVyVGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy53aW5UaW1lID0gMDtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy50b3RhbCA9IDA7XHJcblxyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnVwZGF0ZUNvdW50RG93blRpbWUsMSk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLnN0YXJ0R2FtZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tTY2VuZSgpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkxvYWRTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/kuIvkuIDlhbPvvIzmiJbogIXph43mlrDlvIDlp4vvvIzmiJbogIXov5Tlm57kuIrkuIDlhbPvvIzmoLnmja5sZXZlbOWGs+WumlxyXG4gICAgcmVTdGFydCh0eXBlKXtcclxuICAgICAgICAvLyBpZihHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b20gIT0gMCl7XHJcbiAgICAgICAgLy8gICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkxvYWRTY2VuZVwiKTtcclxuICAgICAgICAvLyAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJzaG93QnRuXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUxpbmUoKTtcclxuICAgICAgICB0aGlzLnRpbWVDb3VudCA9IDAuMTtcclxuICAgICAgICB0aGlzLmNsaWNrTm93ID0gMDtcclxuICAgICAgICB0aGlzLnRpbWVTdGFydCA9IDA7XHJcbiAgICAgICAgdGhpcy5yZXBlYXQgPSAtMTtcclxuICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IC0xO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuYmVnaW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJvdXRlX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5ub3dfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmJhbGxfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLlBvc19BcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMubW92ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy50aW1lX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5jb2xvcl9BcnJheSA9IFtdO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmKHR5cGUgPT0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMuYmdNb3ZlKDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHR5cGUgPT0gMSl7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodHlwZSA9PSAyKXtcclxuICAgICAgICAgICAgdGhpcy5iZ01vdmUoLTEpO1xyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGJlZ2luX0d1aWRlKCl7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8v6I635Y+W5pe26Ze05oizXHJcbiAgICBnZXRUaW1lKCl7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH1cclxuXHJcbiAgICAvL+iOt+iDnFxyXG4gICAgcGFzc0xldmVsKCl7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95TGluZSgpO1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciA9PSBmYWxzZSAmJiB0aGlzLmNvdW50VGltZSA+PSAwKXtcclxuICAgICAgICAgICAgbGV0IHRpbWVBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgdGltZUNvdW50ID0gMDtcclxuICAgICAgICAgICAgbGV0IGJhbGwgPSB0aGlzLmJhbGxfQXJyYXlbMF07XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0xOyBpPCB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlMih0aGlzLmJhbGxfQXJyYXlbaV0ueCx0aGlzLmJhbGxfQXJyYXlbaV0ueSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlbaS0xXS54LHRoaXMuYmFsbF9BcnJheVtpLTFdLnkpO1xyXG4gICAgICAgICAgICAgICAgdGltZUFycmF5LnB1c2godGltZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZm9yKGxldCBrPTE7IGs8IHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7IGsrKyl7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy50d2VlbihiYWxsKVxyXG4gICAgICAgICAgICAgICAgICAgIC50byh0aW1lQXJyYXlbay0xXSx7eDp0aGlzLmJhbGxfQXJyYXlba10ueCx5OnRoaXMuYmFsbF9BcnJheVtrXS55fSlcclxuICAgICAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2tdLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihrID09IHRoaXMuYmFsbF9BcnJheS5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwucG9zaXRpb24gPSBjYy52MyhiYWxsLngsYmFsbC55LDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbGwuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhclN1bigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVTdGFydCgwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDIwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfSwgdGltZUNvdW50KjEwMDApO1xyXG4gICAgICAgICAgICAgICAgdGltZUNvdW50ICs9ICh0aW1lQXJyYXlbay0xXSswLjEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC8v5aSx6LSlXHJcbiAgICBsb3NlTGV2ZWwodHlwZSl7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95TGluZSgpO1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciA9PSBmYWxzZSAmJiB0aGlzLmNvdW50VGltZSA+PSAwKXtcclxuICAgICAgICAgICAgbGV0IGJhbGwgPSB0aGlzLmJhbGxfQXJyYXlbMF07XHJcbiAgICAgICAgICAgIGZvcihsZXQgaz0xOyBrPCB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBrKyspe1xyXG4gICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5iYWxsX0FycmF5W2tdKVxyXG4gICAgICAgICAgICAgICAgLnRvKDIse3g6YmFsbC54LHk6YmFsbC55fSlcclxuICAgICAgICAgICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBpZihrID09IHRoaXMuYmFsbF9BcnJheS5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbC5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwucG9zaXRpb24gPSBjYy52MyhiYWxsLngsYmFsbC55LDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyU3VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVTdGFydCh0eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJTdW4oKXtcclxuICAgICAgICBmb3IobGV0IGs9MDsgazwgdGhpcy5iYWxsX0FycmF5Lmxlbmd0aDsgaysrKXtcclxuICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2tdLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2tdID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/ngrnlh7vlpKrpmLPmiafooYzmlrnms5VcclxuICAgIGNsaWNrU3VuKGRhdGEpe1xyXG4gICAgICAgIGlmKHRoaXMuYmVnaW4gPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpY2tDb3VudCArPSAxO1xyXG4gICAgICAgICAgICBsZXQgY2xpY2tUaW1lID0gdGhpcy5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIHRoaXMudGltZV9BcnJheS5wdXNoKChjbGlja1RpbWUgLSB0aGlzLnRpbWVTdGFydCkpXHJcbiAgICAgICAgICAgIHRoaXMudGltZVN0YXJ0ID0gdGhpcy5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIGlmKGRhdGEgPT0gdGhpcy5jbGlja05vdyl7XHJcbiAgICAgICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuQXVkaW9NYW5hZ2VyLnBsYXlBdWRpb0J1dHRvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jbGlja05vdyA+IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTGluZShjYy52Mih0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXS54LHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93LTFdLnkpLFxyXG4gICAgICAgICAgICAgICAgICAgIGNjLnYyKHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93XS54LHRoaXMuYmFsbF9BcnJheVt0aGlzLmNsaWNrTm93XS55KSxcclxuICAgICAgICAgICAgICAgICAgICAwLjIpOyAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jbGlja05vdyArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy8gR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwgKz0gMTtcclxuICAgICAgXHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W3RoaXMuY2xpY2tOb3ctMV0uZ2V0Q2hpbGRCeU5hbWUoXCJndWFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0sIDIwMCk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmNsaWNrTm93ID09IHRoaXMubm93X0FycmF5Lmxlbmd0aCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwgKz0gdGhpcy5jbGlja05vdztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vdmVyVGltZSA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSArPSAodGhpcy5vdmVyVGltZSAtIHRoaXMuc3RhcnRUaW1lKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBmaW5pc2hfdGltZSA9IHBhcnNlSW50KCh0aGlzLm92ZXJUaW1lIC0gdGhpcy5zdGFydFRpbWUpLzEwMCtcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IDA7IHRoaXMub3ZlclRpbWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb2xvciA9IFwieVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubGV2ZWwgPCA0ICYmIHRoaXMubGV2ZWwgPiAxKWNvbG9yID0gXCJ5clwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5sZXZlbCA+PSA0KSBjb2xvciA9IFwieXJiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHdpbiA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldpblwiKTtcclxuICAgICAgICAgICAgICAgICAgICB3aW4uYWN0aXZlID0gdHJ1ZTsgd2luLnNldFNjYWxlKDApO1xyXG4gICAgICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5BdWRpb01hbmFnZXIucGxheVdpbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91bmQgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3VuQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBtPTAgOyBtPHRoaXMubW92ZUFycmF5Lmxlbmd0aDttKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobSA9PSB0aGlzLnJlcGVhdCB8fCBtID09IHRoaXMubnVtYmVyUmVwZWF0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVttXSA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5BcnJheS5wdXNoKHRoaXMubW92ZUFycmF5W21dKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IG09MCA7IG08dGhpcy5iYWxsX0FycmF5Lmxlbmd0aDttKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobSA9PSB0aGlzLnJlcGVhdCB8fCBtID09IHRoaXMubnVtYmVyUmVwZWF0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5BcnJheS5wdXNoKDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bkFycmF5LnB1c2goMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEgPSBcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZToxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzczp0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQ6dGhpcy5yb3VuZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsU3VuQ291bnQ6dGhpcy5ub3dfQXJyYXkubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZWRTdW5Db3VudDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVOdW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5TcGVlZDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVTcGVlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXBTdW5Db3VudDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLnJlcGVhdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yTGlzdDp0aGlzLmNvbG9yX0FycmF5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246ZmluaXNoX3RpbWUvMTAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmaWN1bHR5TGV2ZWw6dGhpcy5sZXZlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bkxpc3Q6c3VuQXJyYXksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwVGltZUxpc3Q6dGhpcy50aW1lX0FycmF5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyOnRoaXMuY291bnRUaW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3V0UHV0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4od2luKVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMDEse3NjYWxlOjIuNX0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMzUse3NjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjQpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95TGluZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2UgJiYgdGhpcy5jb3VudFRpbWUgPj0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmxldmVsID49IDE1KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5zdWNjZXNzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxldmVsICs9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5sZXZlbExhYmVsLnN0cmluZyA9IHRoaXMubGV2ZWwgKyBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnVodW8gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZXZlbCArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMubGV2ZWxMYWJlbC5zdHJpbmcgPSB0aGlzLmxldmVsICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZ1aHVvID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvc3MoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyB0aGlzLmhpdEFjdGlvbihkYXRhKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgc2V0TG9zcygpe1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5BdWRpb01hbmFnZXIucGxheVdhcm5pbmcoKTtcclxuICAgICAgICB0aGlzLmJlZ2luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vdmVyVGltZSA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSArPSAodGhpcy5vdmVyVGltZSAtIHRoaXMuc3RhcnRUaW1lKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUpO1xyXG4gICAgICAgIGxldCBmaW5pc2hfdGltZSA9IHBhcnNlSW50KCh0aGlzLm92ZXJUaW1lIC0gdGhpcy5zdGFydFRpbWUpLzEwMCtcIlwiKTtcclxuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IDA7IHRoaXMub3ZlclRpbWUgPSAwO1xyXG4gICAgICAgIGxldCBjb2xvciA9IFwieVwiO1xyXG4gICAgICAgIGlmKHRoaXMubGV2ZWwgPCA0ICYmIHRoaXMubGV2ZWwgPiAxKWNvbG9yID0gXCJ5clwiO1xyXG4gICAgICAgIGVsc2UgaWYodGhpcy5sZXZlbCA+PSA0KSBjb2xvciA9IFwieXJiXCI7XHJcbiAgICAgICAgdGhpcy5yb3VuZCArPSAxO1xyXG4gICAgICAgIGxldCBzdW5BcnJheSA9IFtdO1xyXG4gICAgICAgIGlmKHRoaXMubW92ZUFycmF5Lmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IG09MCA7IG08dGhpcy5tb3ZlQXJyYXkubGVuZ3RoO20rKyl7XHJcbiAgICAgICAgICAgICAgICBpZihtID09IHRoaXMucmVwZWF0IHx8IG0gPT0gdGhpcy5udW1iZXJSZXBlYXQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUFycmF5W21dID0gMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHN1bkFycmF5LnB1c2godGhpcy5tb3ZlQXJyYXlbbV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGZvcihsZXQgbT0wIDsgbTx0aGlzLmJhbGxfQXJyYXkubGVuZ3RoO20rKyl7XHJcbiAgICAgICAgICAgICAgICBpZihtID09IHRoaXMucmVwZWF0IHx8IG0gPT0gdGhpcy5udW1iZXJSZXBlYXQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1bkFycmF5LnB1c2goMik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgc3VuQXJyYXkucHVzaCgwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuIFxyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5DTElDS19EQVRBID0gXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOjEsXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6ZmFsc2UsXHJcbiAgICAgICAgICAgIHJvdW5kOnRoaXMucm91bmQsXHJcbiAgICAgICAgICAgIHRvdGFsU3VuQ291bnQ6dGhpcy5ub3dfQXJyYXkubGVuZ3RoLFxyXG4gICAgICAgICAgICBtb3ZlZFN1bkNvdW50OkdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV0ubW92ZU51bWJlcixcclxuICAgICAgICAgICAgc3VuU3BlZWQ6R2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk9bdGhpcy5sZXZlbC0xXS5tb3ZlU3BlZWQsXHJcbiAgICAgICAgICAgIG92ZXJsYXBTdW5Db3VudDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLnJlcGVhdCxcclxuICAgICAgICAgICAgY29sb3JMaXN0OnRoaXMuY29sb3JfQXJyYXksXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOmZpbmlzaF90aW1lLzEwLFxyXG4gICAgICAgICAgICBkaWZmaWN1bHR5TGV2ZWw6dGhpcy5sZXZlbCxcclxuICAgICAgICAgICAgc3VuTGlzdDpzdW5BcnJheSxcclxuICAgICAgICAgICAgc3RlcFRpbWVMaXN0OnRoaXMudGltZV9BcnJheSxcclxuICAgICAgICAgICAgcmVtYWluZGVyOnRoaXMuY291bnRUaW1lXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub3V0UHV0KCk7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgICAgaWYodGhpcy5mdWh1byA9PSB0cnVlKXtcclxuICAgICAgICAgICAgdGhpcy5mdWh1byA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvc2VMZXZlbCgxKTtcclxuICAgICAgICB9IFxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubGV2ZWwgPiAyKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubGV2ZWwgLT0gMTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubGV2ZWxMYWJlbC5zdHJpbmcgPSB0aGlzLmxldmVsICsgXCJcIjtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnVodW8gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5mdWh1byA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb3NlTGV2ZWwoMik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9zZUxldmVsKDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBvdmVyID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiT3ZlclwiKTtcclxuICAgICAgICBjYy50d2VlbihvdmVyKVxyXG4gICAgICAgIC50bygwLjI1LHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgLmRlbGF5KDAuMSlcclxuICAgICAgICAudG8oMC4yLHtvcGFjaXR5OjB9KVxyXG4gICAgICAgIC5kZWxheSgwLjEpXHJcbiAgICAgICAgLnRvKDAuMTUse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgIC50bygwLjEse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgaGl0QWN0aW9uKGRhdGEpe1xyXG4gICAgICAgIHRoaXMuaGl0LmFjdGl2ZSA9IHRydWU7IHRoaXMuaGl0Lm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIHRoaXMuaGl0LnNldFBvc2l0aW9uXHJcbiAgICAgICAgdGhpcy5oaXQuc2V0UG9zaXRpb24odGhpcy5iYWxsX0FycmF5W2RhdGFdLngrMzUsdGhpcy5iYWxsX0FycmF5W2RhdGFdLnkrMzUpO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMuaGl0KVxyXG4gICAgICAgIC50bygwLHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgLnRvKDAuMix7cG9zaXRpb246Y2MudjModGhpcy5oaXQueC0zNSx0aGlzLmhpdC55LTM1LDApfSlcclxuICAgICAgICAuZGVsYXkoMC4yKVxyXG4gICAgICAgIC50bygwLjEse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuaGl0LmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/lvIDlp4vmuLjmiI9cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciA9PSBmYWxzZSAmJiB0aGlzLmNvdW50VGltZSA+IDApe1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVTdW4oKTtcclxuICAgICAgICAgICAgdGhpcy5iZWdpbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy50d2Vlbih0aGlzLmJhbGwpXHJcbiAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6MjU1LHNjYWxlOjEuM30pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnJ1bkdhbWUoKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBydW5HYW1lKCl7XHJcbiAgICAgICAgbGV0IHRpbWUgPSAtNjUwO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMubm93X0FycmF5Lmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgdGltZSA9IHRoaXMubm93X0FycmF5W2ldLnRpbWUqMTAwMCArIHRpbWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5vdmVyID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IHRoaXMubm93X0FycmF5W2ldLnRpbWVDb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBpZih0ZW1wID4gMC41KSB0ZW1wID0gMC41O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGkgIT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuYmFsbCAmJiB0aGlzLm5vd19BcnJheVtpXSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmUoY2MudjIodGhpcy5iYWxsLngsdGhpcy5iYWxsLnkpLGNjLnYyKHRoaXMubm93X0FycmF5W2ldLngsdGhpcy5ub3dfQXJyYXlbaV0ueSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vd19BcnJheVtpXS50aW1lLXRlbXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbClcclxuICAgICAgICAgICAgICAgICAgICAudG8odGhpcy5ub3dfQXJyYXlbaV0udGltZS10ZW1wLHt4OnRoaXMubm93X0FycmF5W2ldLngseTp0aGlzLm5vd19BcnJheVtpXS55fSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC4xLHtzY2FsZToxfSlcclxuICAgICAgICAgICAgICAgICAgICAuY2FsbCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUJhbGwoaSx0aGlzLm5vd19BcnJheVtpXS5jb2xvcix0aGlzLm5vd19BcnJheVtpXS5zcGVlZCx0aGlzLm5vd19BcnJheVtpXS5yZXBlYXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihpID09IHRoaXMubm93X0FycmF5Lmxlbmd0aCAtMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3lMaW5lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iZWdpbkdhbWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVOdW1iZXI8MSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxNTApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlTW92ZSgpe1xyXG4gICAgICAgIGlmKHRoaXMub3ZlciA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgIGxldCBpbmZvID0gR2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk9bdGhpcy5sZXZlbC0xXTtcclxuICAgICAgICAgICAgLy/mlLnlj5jnp7vliqjpgJ/luqZcclxuICAgICAgICAgICAgdmFyIHNwZWVkID0gNztcclxuICAgICAgICAgICAgaWYoaW5mby5tb3ZlU3BlZWQgPj0gMil7XHJcbiAgICAgICAgICAgICAgICBzcGVlZCA9IDcgLSBpbmZvLm1vdmVTcGVlZC8yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGluZm8ucmVwZWF0ID09IDEpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXBlYXQgID0gcGFyc2VJbnQoKE1hdGgucmFuZG9tKCkqKGluZm8ubnVtYmVyLTEpKzEpICsgXCJcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGVtcE51bWJlciA9IDA7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJlcGVhdCA9IDQ7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLnJlcGVhdCAgPiA0KXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IHBhcnNlSW50KE1hdGgucmFuZG9tKCkqNCArIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMucmVwZWF0ICA9PSAoaW5mby5udW1iZXItMSkpICAvL+WmguaenOaYr+acgOWQjuS4gOS4qiDkuI3og73ot5/nrKzkuIDkuKrph43lj6BcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IHRoaXMucmVwZWF0ICAtIHBhcnNlSW50KCAoTWF0aC5yYW5kb20oKSozICsgMikrIFwiXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGVtcE51bWJlciA9ICB0aGlzLlBvc19BcnJheVt0aGlzLm51bWJlclJlcGVhdF07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5yZXBlYXQgXSA9IHRlbXBOdW1iZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNleyAvLyAwIDEgMiAzIDQgNSBcclxuICAgICAgICAgICAgICAgICAgICAvLyA2IC0gMyAtIDEgID0gMiA0ICAwMSA0XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5yZXBlYXQgID09IDApIHRoaXMucmVwZWF0ICA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoKGluZm8ubnVtYmVyLTEtdGhpcy5yZXBlYXQgKSA9PSAyKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSBpbmZvLm51bWJlciAtIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBOdW1iZXIgPSAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5udW1iZXJSZXBlYXRdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKChpbmZvLm51bWJlci0xLXRoaXMucmVwZWF0ICkgPT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyUmVwZWF0ID0gdGhpcy5yZXBlYXQgLSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTnVtYmVyID0gIHRoaXMuUG9zX0FycmF5W3RoaXMubnVtYmVyUmVwZWF0XTtcclxuICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoKGluZm8ubnVtYmVyLTEtdGhpcy5yZXBlYXQgKSA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSB0aGlzLnJlcGVhdCAtIDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBOdW1iZXIgPSAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5udW1iZXJSZXBlYXRdO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigoaW5mby5udW1iZXItMS10aGlzLnJlcGVhdCApID4gMil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyUmVwZWF0ID0gcGFyc2VJbnQoTWF0aC5yYW5kb20oKSooaW5mby5udW1iZXItdGhpcy5yZXBlYXQgLTIpICsgXCJcIikgKyB0aGlzLnJlcGVhdCAgKyAyIDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE51bWJlciA9ICB0aGlzLlBvc19BcnJheVt0aGlzLm51bWJlclJlcGVhdF07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyUmVwZWF0ID0gdGhpcy5yZXBlYXQgLSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTnVtYmVyID0gIHRoaXMuUG9zX0FycmF5W3RoaXMubnVtYmVyUmVwZWF0XTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5yZXBlYXRdID0gdGVtcE51bWJlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihpbmZvLm1vdmVOdW1iZXIgPiAwKXtcclxuICAgICAgICAgICAgICAgIC8vMCAxIDIgMyA0IDUgNiA3IDggOVxyXG4gICAgICAgICAgICAgICAgLy/lj6/np7vliqjljLrliIZcclxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBjYy52MigwLDApO1xyXG4gICAgICAgICAgICAgICAgaWYoaW5mby5udW1iZXIgPT0gMykgdGhpcy5tb3ZlQXJyYXkgPSBbMCwxLDBdO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihpbmZvLm51bWJlciA9PSA0KSB0aGlzLm1vdmVBcnJheSA9IFswLDAsMSwwXTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoaW5mby5udW1iZXIgPT0gNSkgdGhpcy5tb3ZlQXJyYXkgID0gWzAsMCwxLDAsMF07XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKGluZm8ubnVtYmVyID09IDUpIHRoaXMubW92ZUFycmF5ICA9IFswLDAsMSwwLDBdO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihpbmZvLm51bWJlciA9PSA2KSB0aGlzLm1vdmVBcnJheSAgPSBbMCwwLDEsMSwwLDBdO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihpbmZvLm51bWJlciA9PSA3KSB0aGlzLm1vdmVBcnJheSAgPSBbMCwwLDEsMSwxLDAsMF07XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKGluZm8ubnVtYmVyID09IDgpIHRoaXMubW92ZUFycmF5ICA9IFswLDAsMCwxLDEsMSwxLDBdO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihpbmZvLm51bWJlciA9PSA5KSB0aGlzLm1vdmVBcnJheSAgPSBbMCwwLDEsMSwxLDEsMSwwLDBdO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihpbmZvLm51bWJlciA9PSAxMCkgdGhpcy5tb3ZlQXJyYXkgID0gWzAsMCwwLDEsMSwxLDEsMSwwLDBdO1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbWVPdXQgPSAwO1xyXG4gICAgICAgICAgICAgICAgLy/miZPkubHlj6/np7vliqjpobrluo9cclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubW92ZUFycmF5IC5zb3J0KCgpID0+IE1hdGgucmFuZG9tKCkgLSAwLjUpO1xyXG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v6K6+572u6YeN5Y+gXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJlcGVhdCA9IC0xO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5udW1iZXJSZXBlYXQgPSAtMTtcclxuXHJcbiAgICAgICAgICAgICAgICAvL+WwhumHjeWPoOeahOiuvue9ruS4uuS4jeWPr+enu+WKqCAgMSAxIDEgMSAwIDAgMSAwIDAgMCAgIC8gMiA3XHJcbiAgICAgICAgICAgIGZvcihsZXQgayA9MDsgazx0aGlzLm1vdmVBcnJheS5sZW5ndGg7aysrKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZUFycmF5W2tdPT0xICYmIChrID09IHRoaXMucmVwZWF0IHx8IGsgPT0gdGhpcy5udW1iZXJSZXBlYXQpKXtcclxuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IG0gPSB0aGlzLm1vdmVBcnJheS5sZW5ndGgtMTsgbSA+PSAwOyBtLS0pe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihtICE9IGsgJiYgdGhpcy5tb3ZlQXJyYXlbbV0gPT0gMCAmJiBtIT0gdGhpcy5yZXBlYXQgJiYgbSE9IHRoaXMubnVtYmVyUmVwZWF0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUFycmF5W21dID0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUFycmF5W2tdID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gID0gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZm9yKGxldCBpID0wOyBpPHRoaXMuUG9zX0FycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlQXJyYXkgW2ldID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpbWVPdXQgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gdGhpcy5nZXRQb3MyKHRydWUsaSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUG9zX0FycmF5W2ldID0gcG9zO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIHRpbWVPdXQqMzAwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC8v56e75Yqo5ZCO5pWw5o2uIOmHjeaWsOWIt+S4gOmBjei1i+WAvFxyXG4gICAgdXBkYXRlQXJyYXkoKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLm5vd19BcnJheS5sZW5ndGgtMTtpKyspe1xyXG4gICAgICAgICAgICB0aGlzLm5vd19BcnJheVtpXS54ID0gdGhpcy5Qb3NfQXJyYXlbaV0ueDtcclxuICAgICAgICAgICAgdGhpcy5ub3dfQXJyYXlbaV0ueSA9IHRoaXMuUG9zX0FycmF5W2ldLnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/lpKrpmLPliJ3lp4vljJblkI7np7vliqjmlrnms5VcclxuICAgICBtb3ZlQWN0aW9uKCl7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBcnJheSgpO1xyXG4gICAgICAgIGxldCBtb3ZlQXJyYXkgPSB0aGlzLm1vdmVBcnJheTtcclxuICAgICAgICBsZXQgaW5mbyA9IEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV07XHJcbiAgICAgICAgLy/mlLnlj5jnp7vliqjpgJ/luqZcclxuICAgICAgICB2YXIgc3BlZWQgPSA3O1xyXG4gICAgICAgIGlmKGluZm8ubW92ZVNwZWVkID49IDIpe1xyXG4gICAgICAgICAgICBzcGVlZCA9IDcgLSBpbmZvLm1vdmVTcGVlZC8yO1xyXG4gICAgICAgIH0gIFxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBpZihpbmZvLm1vdmVOdW1iZXIgPiAwKXtcclxuICAgICAgICAgICAgLy8wIDEgMiAzIDQgNSA2IDcgOCA5XHJcbiAgICAgICAgICAgIC8v5Y+v56e75Yqo5Yy65YiGXHJcbiAgICAgICAgICAgIGxldCBwb3MgPSBjYy52MigwLDApO1xyXG5cclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMucmVwZWF0ID0gLTE7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubnVtYmVyUmVwZWF0ID0gLTE7XHJcblxyXG4gICAgICAgICAgICAgICAgLy/lsIbph43lj6DnmoTorr7nva7kuLrkuI3lj6/np7vliqggIDEgMSAxIDEgMCAwIDEgMCAwIDAgICAvIDIgN1xyXG4gICAgICAgICAgICBmb3IobGV0IGsgPTA7IGs8dGhpcy5tb3ZlQXJyYXkubGVuZ3RoO2srKyl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVBcnJheVtrXT09MSAmJiAoayA9PSB0aGlzLnJlcGVhdCB8fCBrID09IHRoaXMubnVtYmVyUmVwZWF0KSl7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBtID0gdGhpcy5tb3ZlQXJyYXkubGVuZ3RoLTE7IG0gPj0gMDsgbS0tKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYobSAhPSBrICYmIHRoaXMubW92ZUFycmF5W21dID09IDAgJiYgbSE9IHRoaXMucmVwZWF0ICYmIG0hPSB0aGlzLm51bWJlclJlcGVhdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVttXSA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVtrXSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICA9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgbGFzdE51bWJlciA9IDA7XHJcbiAgICAgICAgICAgIC8v6ZSB5a6a5pyA5ZCO5LiA5Liq5Y+v56e75Yqo55qEXHJcbiAgICAgICAgICAgIGZvcihsZXQgaiA9MDsgajxtb3ZlQXJyYXkubGVuZ3RoO2orKyl7XHJcbiAgICAgICAgICAgICAgICBpZihtb3ZlQXJyYXlbal09PTEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGxhc3ROdW1iZXIgPSBqO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBmb3IobGV0IGkgPTA7IGk8dGhpcy5iYWxsX0FycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYobW92ZUFycmF5W2ldID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGkgIT0gbGFzdE51bWJlcil7ICAgIC8v5aaC5p6c5LiN5piv5pyA5ZCO5LiA5Liq56e75Yqo55qEXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gc3BlZWQqdGhpcy5jYWxjdWxhdGVEaXN0YW5jZTModGhpcy5iYWxsX0FycmF5W2ldLngsdGhpcy5iYWxsX0FycmF5W2ldLnksdGhpcy5Qb3NfQXJyYXlbaV0ueCx0aGlzLlBvc19BcnJheVtpXS55KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2ldLmdldENvbXBvbmVudChcIlN1blwiKS5tb3ZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5iYWxsX0FycmF5W2ldKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAudG8odGltZSx7cG9zaXRpb246dGhpcy5Qb3NfQXJyYXlbaV19KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJTdW5cIikubW92ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy/lpoLmnpzmmK/mnIDlkI7kuIDkuKpcclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IHNwZWVkKnRoaXMuY2FsY3VsYXRlRGlzdGFuY2UzKHRoaXMuYmFsbF9BcnJheVtpXS54LHRoaXMuYmFsbF9BcnJheVtpXS55LHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJTdW5cIikubW92ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbF9BcnJheVtpXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvKHRpbWUse3Bvc2l0aW9uOnRoaXMuUG9zX0FycmF5W2ldfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2ldLmdldENvbXBvbmVudChcIlN1blwiKS5tb3ZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYmVnaW5HYW1lKCl7XHJcbiAgICAgICAgdGhpcy5iZWdpbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSB0aGlzLmdldFRpbWUoKTtcclxuICAgICAgICB0aGlzLnRpbWVTdGFydCA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJzaG93QnRuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmFuZG9tQXJyYXkobGFzdE51bWJlcil7XHJcbiAgICAgICAgbGV0IG51bSA9ICBwYXJzZUludChNYXRoLnJhbmRvbSgpKjggLSA0ICsgXCJcIik7XHJcbiAgICAgICAgbGV0IGpnID0gbnVtICsgbGFzdE51bWJlcjtcclxuICAgICAgICBpZihudW0gPiAxIHx8IG51bSA8LTEpe1xyXG4gICAgICAgICAgICBpZiggbnVtID09IDAgfHwgKCBqZzwwIHx8IGpnID49IHRoaXMuUG9zX0FycmF5Lmxlbmd0aCkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSB0aGlzLmdldFJhbmRvbUFycmF5KGxhc3ROdW1iZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGpnID0gdGhpcy5nZXRSYW5kb21BcnJheShsYXN0TnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICBcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rlpKrpmLPmiYDpnIDmlbDmja5cclxuICAgIGNyZWF0ZVN1bigpe1xyXG4gICAgICAgIGxldCBsZXZlbERhdGEgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdO1xyXG4gICAgICAgIGxldCB0aWVtT3V0ID0gMDtcclxuICAgICAgICBmb3IobGV0IGw9MDsgbDxsZXZlbERhdGEubnVtYmVyO2wrKyl7XHJcbiAgICAgICAgICAgIHRpZW1PdXQgKz0gMTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3MgPSB0aGlzLmdldFBvcyhmYWxzZSxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlBvc19BcnJheS5wdXNoKHBvcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5Qb3NfQXJyYXkubGVuZ3RoID09IGxldmVsRGF0YS5udW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQb3MoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9LCB0aWVtT3V0KjEwMCk7XHJcbiBcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gMCAwIDAgMCAwIDAgICAgIDAgICAgMCAwIDAgMFxyXG5cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVQb3MoKXtcclxuICAgICAgICBsZXQgZGF0YSA9IHt4OnRoaXMuYmFsbC54LHk6dGhpcy5iYWxsLnksdGltZTowLHRpbWVDb3VudDowLGNvbG9yOjAsc3BlZWQ6MCxyZXBlYXQ6ZmFsc2V9O1xyXG4gICAgICAgIGxldCBsZXZlbERhdGEgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdO1xyXG4gICAgICAgIC8v6aKc6Imy5Yy65YiGXHJcbiAgICAgICAgbGV0IGNvbG9yQXJyYXkgPSBbMCwxXTtcclxuICAgICAgICBmb3IobGV0IGo9MDsgajxsZXZlbERhdGEubnVtYmVyLTI7aisrKXtcclxuICAgICAgICAgICAgbGV0IGNvbG9yVGVtcCA9IHBhcnNlSW50KE1hdGgucmFuZG9tKCkqMytcIlwiKTtcclxuICAgICAgICAgICAgaWYobGV2ZWxEYXRhLm51bWJlciA8IDYgJiYgY29sb3JUZW1wID09IDIpIGNvbG9yVGVtcCA9IDA7XHJcbiAgICAgICAgICAgIGNvbG9yQXJyYXkucHVzaChjb2xvclRlbXApO1xyXG4gICAgICAgICAgICBjb2xvckFycmF5LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbG9yQXJyYXkuc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KTtcclxuICAgICAgICBpZihsZXZlbERhdGEubnVtYmVyID09IDQpIGNvbG9yQXJyYXkgPSBbMCwwLDAsMF07XHJcbiAgICAgICAgdGhpcy5jb2xvcl9BcnJheSA9IGNvbG9yQXJyYXk7XHJcblxyXG5cclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxsZXZlbERhdGEubnVtYmVyO2krKyl7XHJcbiAgICAgICAgICAgIGxldCB0aW1lQ291bnQgPSB0aGlzLnRpbWVDb3VudCArICgwLjYtdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLmJhbGwueCx0aGlzLmJhbGwueSx0aGlzLlBvc19BcnJheVtpXS54LHRoaXMuUG9zX0FycmF5W2ldLnkpKTtcclxuICAgICAgICAgICAgbGV0IHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55LHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSkrdGltZUNvdW50O1xyXG4gICAgICAgICAgICBkYXRhID0ge3g6dGhpcy5Qb3NfQXJyYXlbaV0ueCx5OnRoaXMuUG9zX0FycmF5W2ldLnksdGltZTp0aW1lLHRpbWVDb3VudDp0aW1lQ291bnQsY29sb3I6Y29sb3JBcnJheVtpXSxzcGVlZDpsZXZlbERhdGEubW92ZVNwZWVkLHJlcGVhdDpmYWxzZX07XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmVwZWF0ID09IGkpe1xyXG4gICAgICAgICAgICAgICAgZGF0YS5yZXBlYXQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYodGhpcy5udW1iZXJSZXBlYXQgPT0gaSl7XHJcbiAgICAgICAgICAgICAgICBkYXRhLnJlcGVhdCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ub3dfQXJyYXkucHVzaChkYXRhKTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJ1bkdhbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQb3ModHlwZSxudW0pe1xyXG4gICAgICAgIGxldCBwb3NYID0gTWF0aC5yYW5kb20oKSo2MjAgLSAzMTA7XHJcbiAgICAgICAgbGV0IHBvc1kgPSBNYXRoLnJhbmRvbSgpKih0aGlzLmZpdFRvcC10aGlzLmZpdEJvdCkgKyB0aGlzLmZpdEJvdDtcclxuXHJcbiAgICAgICAgbGV0IHBvaW50ID0gY2MudjIocG9zWCxwb3NZKTtcclxuICAgICAgIFxyXG4gICAgICAgIGlmKHRoaXMuUG9zX0FycmF5Lmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLlBvc19BcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCBkaXN0YW5jZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZihpID09IG51bSkgcGQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKHBvc1gscG9zWSx0aGlzLlBvc19BcnJheVtpXS54LHRoaXMuUG9zX0FycmF5W2ldLnkscGQpXHJcbiAgICAgICAgICAgICAgICBpZihkaXN0YW5jZSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgaSA9IDEwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ID0gdGhpcy5nZXRQb3ModHlwZSxudW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPT0gdHJ1ZSAmJiBpID09ICh0aGlzLlBvc19BcnJheS5sZW5ndGgtMSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb2ludDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQb3MyKHR5cGUsbnVtKXtcclxuXHJcbiAgICAgICAgbGV0IHBvc1ggPSBNYXRoLnJhbmRvbSgpKjYyMCAtIDMxMDtcclxuICAgICAgICBsZXQgcG9zWSA9IE1hdGgucmFuZG9tKCkqKHRoaXMuZml0VG9wLXRoaXMuZml0Qm90KSArIHRoaXMuZml0Qm90O1xyXG5cclxuICAgICAgICBsZXQgcG9pbnQgPSBjYy52Mihwb3NYLHBvc1kpO1xyXG4gICAgICAgXHJcbiBcclxuICAgICAgICBpZih0aGlzLlBvc19BcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5Qb3NfQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlzdGFuY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBwZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYoaSA9PSBudW0pIHBkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGRpc3RhbmNlID0gdGhpcy5nZXREaXN0YW5jZTIocG9zWCxwb3NZLHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSxwZClcclxuICAgICAgICAgICAgICAgIGlmKGRpc3RhbmNlID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICBpID0gMTAwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnQgPSB0aGlzLmdldFBvczIodHlwZSxudW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPT0gdHJ1ZSAmJiBpID09ICh0aGlzLlBvc19BcnJheS5sZW5ndGgtMSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb2ludDtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXN0YW5jZSh4MSwgeTEsIHgyLCB5MixudW0pIHtcclxuICAgICAgICB2YXIgamcgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBkeCA9IHgyIC0geDE7XHJcbiAgICAgICAgY29uc3QgZHkgPSB5MiAtIHkxO1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBpZihkaXN0YW5jZSA+IDE2MCl7XHJcbiAgICAgICAgICAgIGlmKG51bSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgIGlmKGRpc3RhbmNlIDwgR2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk9bdGhpcy5sZXZlbC0xXS5tYXhNb3ZlKXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgZWxzZSBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBpZihkaXN0YW5jZSA8IEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV0ubWF4TW92ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgIGVsc2UgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGlzdGFuY2UyKHgxLCB5MSwgeDIsIHkyLG51bSkge1xyXG4gICAgICAgIHZhciBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gMTYwKXtcclxuICAgICAgICAgICAgaWYobnVtID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPCBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1heERpc3RhbmNlKSBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGpnID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNyZWF0ZUJhbGwobnVtYmVyLGNvbG9yLHNwZWVkLHJlcGVhdCl7XHJcbiAgICAgICAgbGV0IGJhbGwgPSBudWxsO1xyXG4gICAgICAgIGlmKGNvbG9yID09IDApYmFsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMucWl1MSk7XHJcbiAgICAgICAgZWxzZSBpZihjb2xvciA9PSAxKWJhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLnFpdTIpO1xyXG4gICAgICAgIGVsc2UgaWYoY29sb3IgPT0gMiliYWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5xaXUzKTtcclxuICAgICAgICBiYWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlN1blwiKTtcclxuICAgICAgICBiYWxsLnpJbmRleCA9IHRoaXMubm93X0FycmF5Lmxlbmd0aCAtIG51bWJlcjtcclxuICAgICAgICBiYWxsLnNldFBvc2l0aW9uKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55KTtcclxuICAgICAgICBiYWxsLmdldENvbXBvbmVudChcIlN1blwiKS5pbml0KG51bWJlcixjb2xvcixzcGVlZCxyZXBlYXQpO1xyXG4gICAgICAgIHRoaXMuYmFsbF9BcnJheS5wdXNoKGJhbGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlc3Ryb3lMaW5lKCkge1xyXG4gICAgICAgIGZvcihsZXQgaSA9MDsgaTwgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKS5jaGlsZHJlbi5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKS5jaGlsZHJlbltpXSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpLmNoaWxkcmVuW2ldLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikuY2hpbGRyZW5baV0gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVMaW5lKHN0YXJ0LGVuZCx0aW1lKXtcclxuICAgICAgICBsZXQgbGluZSA9IGNjLmluc3RhbnRpYXRlKHRoaXMubGluZVByZWZhYik7XHJcbiAgICAgICAgbGluZS5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpO1xyXG4gICAgICAgIGxpbmUuc2V0UG9zaXRpb24oc3RhcnQueCxzdGFydC55KTtcclxuICAgIFxyXG4gICAgICAgIGNvbnN0IGR4ID0gZW5kLnggLSBzdGFydC54O1xyXG4gICAgICAgIGNvbnN0IGR5ID0gZW5kLnkgLSBzdGFydC55O1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBsaW5lLmhlaWdodCA9IGRpc3RhbmNlO1xyXG4gICAgICAgIGxpbmUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuZmlsbFJhbmdlID0gMDtcclxuICAgICAgICBsaW5lLmFuZ2xlID0gLXRoaXMuY2FsY3VsYXRlQW5nbGUoc3RhcnQueCxzdGFydC55LGVuZC54LGVuZC55KTtcclxuICAgICAgICBjYy50d2VlbihsaW5lLmdldENvbXBvbmVudChjYy5TcHJpdGUpKVxyXG4gICAgICAgIC50byh0aW1lLHtmaWxsUmFuZ2U6MX0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FsY3VsYXRlQW5nbGUoeDEsIHkxLCB4MiwgeTIpIHtcclxuICAgICAgICB2YXIgYW5nbGUgPSBNYXRoLmF0YW4yKHkyLXkxLHgyLXgxKSoxODAgLyBNYXRoLlBJIC0gOTA7XHJcbiAgICAgICAgcmV0dXJuIC1hbmdsZTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxjdWxhdGVEaXN0YW5jZSh4MSwgeTEsIHgyLCB5Mikge1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gODAwKSBkaXN0YW5jZSA9IDgwMDtcclxuICAgICAgICBjb25zdCB0aW1lID0gZGlzdGFuY2UvODAwICogMC42O1xyXG4gICAgICAgIHJldHVybiB0aW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZURpc3RhbmNlMih4MSwgeTEsIHgyLCB5Mikge1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gMTIwMCkgZGlzdGFuY2UgPSAxMjAwO1xyXG4gICAgICAgIGNvbnN0IHRpbWUgPSBkaXN0YW5jZS8xMjAwICogMTtcclxuICAgICAgICByZXR1cm4gdGltZTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxjdWxhdGVEaXN0YW5jZTMoeDEsIHkxLCB4MiwgeTIpIHtcclxuICAgICAgICBjb25zdCBkeCA9IHgyIC0geDE7XHJcbiAgICAgICAgY29uc3QgZHkgPSB5MiAtIHkxO1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBpZihkaXN0YW5jZSA+IDEyMDApIGRpc3RhbmNlID0gMTIwMDtcclxuICAgICAgICBjb25zdCB0aW1lID0gZGlzdGFuY2UvMTIwMCAqIDEuNTtcclxuICAgICAgICByZXR1cm4gdGltZTtcclxuICAgIH1cclxuXHJcbiAgICAvL+iDjOaZr+enu+WKqFxyXG4gICAgYmdNb3ZlKHR5cGUpe1xyXG4gICAgICAgIGxldCByYW5kb20gPSBNYXRoLnJhbmRvbSgpKjMwMCArIDMwMDtcclxuICAgICAgICBsZXQgcG9zWCA9IE1hdGgucmFuZG9tKCkqNjAwIC0gMzAwO1xyXG4gICAgXHJcbiAgICAgICAgbGV0IHkxID0gdGhpcy5iZzEueSAtIHJhbmRvbSp0eXBlO1xyXG4gICAgICAgIC8vIGxldCB5MiA9IHRoaXMuYmcyLnkgLSByYW5kb20qdHlwZTtcclxuICAgICAgICBsZXQgdGltZTEgPSAwLjcqKHJhbmRvbS80MDApO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLmJhbGwpXHJcbiAgICAgICAgLnRvKDAuMyx7c2NhbGU6MS4zfSlcclxuICAgICAgICAudG8odGltZTEse3g6cG9zWH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMuYmcxKVxyXG4gICAgICAgIC5kZWxheSgwLjMpXHJcbiAgICAgICAgLnRvKHRpbWUxLHt5OnkxfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgLy8gY2MudHdlZW4odGhpcy5iZzIpXHJcbiAgICAgICAgLy8gLmRlbGF5KDAuMylcclxuICAgICAgICAvLyAudG8odGltZTEse3k6eTJ9KVxyXG4gICAgICAgIC8vIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5vdmVyID09IGZhbHNlICYmIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbSA9PSAwKXtcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgaWYodGhpcy5vdmVyID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgXHJcbiAgICAgICAgfSwgdGltZTEqMTUwMCk7XHJcbiAgICB9XHJcbiAgICAvL+aXtumXtOagvOW8j+i9rOaNolxyXG4gICAgZ2V0VGltZU1hcmdpbihzZWNvbmQ6bnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgbGV0IG0gPSBcIlwiICsgbWluOyAgXHJcbiAgICAgICAgaWYobWluIDwgMTApIG0gPSBcIjBcIittaW47XHJcbiAgICAgICAgbGV0IGFmdGVyTWluID0gdG90YWwgLSBob3VyICogNjAgKiA2MCAtIG1pbiAqIDYwOy8v5Y+W5b6X566X5Ye65YiG5ZCO5Ymp5L2Z55qE56eS5pWwXHJcbiAgICAgICAgbGV0IG1pYW8gPSBhZnRlck1pbiArIFwiXCI7XHJcbiAgICAgICAgaWYoYWZ0ZXJNaW4gPCAxMCkgbWlhbyA9IFwiMFwiICsgYWZ0ZXJNaW47XHJcbiAgICAgICAgcmV0dXJuIG0gKyAnOicgKyBtaWFvXHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICAvL+WmguaenOaYr+WAkuiuoeaXtiDosIPnlKjmraTmlrnms5VcclxuICAgIHVwZGF0ZUNvdW50RG93blRpbWUgKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvdW50VGltZSA+IDAgJiYgdGhpcy5wYXVzZSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50VGltZSAtPSAxO1xyXG4gICAgICAgICAgICB0aGlzLnRpbWUuc3RyaW5nID0gdGhpcy5nZXRUaW1lTWFyZ2luKHRoaXMuY291bnRUaW1lKTtcclxuICAgICAgICAgICAgaWYodGhpcy5jb3VudFRpbWUgPCA1KXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMudGltZS5ub2RlKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMjUse3NjYWxlOjEuNSxjb2xvcjpjYy5jb2xvcigyNTUsMCwwKX0pXHJcbiAgICAgICAgICAgICAgICAudG8oMC4yNSx7c2NhbGU6MSxjb2xvcjpjYy5jb2xvcigyNTUsMjU1LDI1NSl9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KClcclxuICAgICAgICAgICAgICAgIGxldCBvdmVyID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiT3ZlclwiKTtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKG92ZXIpXHJcbiAgICAgICAgICAgICAgICAudG8oMC4yLHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMix7b3BhY2l0eTowfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY291bnRUaW1lIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iZWdpbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnVwZGF0ZUNvdW50RG93blRpbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb3NzKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUsdGhpcy5jbGlja0NvdW50KTtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuY2xpY2tDb3VudCA+IDApIHRpbWUgPSBwYXJzZUludChHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUvdGhpcy5jbGlja0NvdW50ICsgXCJcIik7XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSA9IHBhcnNlSW50KHRpbWUvMTAwICsgXCJcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWVhbl9UaW1lID0gR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWVhbl9UaW1lIC8xMDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRSYW5rKHRpbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldERhdGEoKXtcclxuICAgICAgICBsZXQgZGF0YSA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HQU1FX0RBVEE7XHJcbiAgICAgICAgbGV0IG1hdGNoSWQgPSB0aGlzLmdldE1hdGNoSWQoKTtcclxuICBcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwibWF0Y2hJZFwiOm1hdGNoSWQsXHJcbiAgICAgICAgICAgIFwiZGF0YVwiOiBkYXRhXHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS8oOaVsOaNrjpcIixwb3N0RGF0YSlcclxuICAgICAgICBIdHRwVXRpbC51cGxvYWRVc2VyTG9nRGF0YShwb3N0RGF0YSxmdW5jdGlvbigpe30pXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcbiAgICAgICAgaWYobWF0Y2hJZCA9PSBcInVuZGlmZW5kXCIgfHwgbWF0Y2hJZD09bnVsbCl7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgPSAgdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGxldCBjaGFyID0gcGFyc2VJbnQobWF0Y2hJZFsxMF0pO1xyXG4gICAgICAgICAgICBjaGFyICs9IDE7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgID0gbWF0Y2hJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWF0Y2hJZCA9IG1hdGNoSWQ7XHJcbiAgICAgICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoSWRcIixtYXRjaElkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hdGNoSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICAvLyDlrprkuYnljIXlkKvlj6/nlKjlrZfnrKbnmoTlrZfnrKbpm4ZcclxuICAgICAgICBjb25zdCBjaGFyYWN0ZXJzID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5JztcclxuICAgICAgICAvLyDliJvlu7rkuIDkuKrmlbDnu4Tku6Xkv53lrZjpmo/mnLrlrZfnrKZcclxuICAgICAgICBjb25zdCB1dWlkQXJyYXkgPSBbXTtcclxuICAgICAgICBcclxuICAgICAgICAvLyDlvqrnjq8xMOasoSDnlJ/miJAxMOS9jeeahFVVSURcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIC8vIOeUn+aIkOmaj+acuue0ouW8le+8jOiMg+WbtOaYr+Wtl+espumbhueahOmVv+W6plxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnMubGVuZ3RoKTtcclxuICAgICAgICAgICAgLy8g5LuO5a2X56ym6ZuG5Lit6I635Y+W6ZqP5py65a2X56ymXHJcbiAgICAgICAgICAgIGNvbnN0IHJhbmRvbUNoYXIgPSBjaGFyYWN0ZXJzLmNoYXJBdChyYW5kb21JbmRleCk7XHJcbiAgICAgICAgICAgIC8vIOWwhuWtl+espua3u+WKoOWIsOaVsOe7hOS4rVxyXG4gICAgICAgICAgICB1dWlkQXJyYXkucHVzaChyYW5kb21DaGFyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGRhdGEgPSAgdXVpZEFycmF5LmpvaW4oJycpICsgMSArIFwiXCI7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hOdW1iZXJcIiwxKTtcclxuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJtYXRjaElkXCIsZGF0YSk7XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWF0Y2hJZCA9IGRhdGE7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmFuayh0aW1lKXtcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwidHlwZVwiOjEsXHJcbiAgICAgICAgICAgIFwicmVhY3Rpb25UaW1lXCI6IHRpbWUsXHJcbiAgICAgICAgICAgIFwidG90YWxTdW5Db3VudFwiOiBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy50b3RhbCxcclxuICAgICAgICAgICAgXCJzdWNjZXNzXCI6IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnN1Y2Nlc3NcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zb2xlLmxvZyhwb3N0RGF0YSk7XHJcbiAgICAgICAgSHR0cFV0aWwucmFua0RhdGEoMSxmdW5jdGlvbigpe30scG9zdERhdGEpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVPdmVyXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZU92ZXJcIikub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZU92ZXJcIikpXHJcbiAgICAgICAgLnRvKDAuNCx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgIC5kZWxheSgyKVxyXG4gICAgICAgIC50bygwLjQse29wYWNpdHk6NTB9KVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJPdmVyU2NlbmVcIik7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuc3RhcnQoKVxyXG4gICAgICBcclxuICAgIH1cclxuXHJcbiAgICBvdXRQdXQoKXtcclxuXHJcbiAgICAgICAgbGV0IGRhdGEgPSBHYW1lRGF0YS5faW5zdGFuY2UuQ0xJQ0tfREFUQTtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR0FNRV9EQVRBID0gW107XHJcbiAgICAgICAgLy8gaWYoZGF0YS5zdWNjZWVkID09IHRydWUpICAgIHRoaXMubGFiZWwxLnN0cmluZyA9IFwi5oiQ5YqfL+Wksei0pTrmiJDlip9cIjtcclxuICAgICAgICAvLyBlbHNlIGlmKGRhdGEuc3VjY2VlZCA9PSBmYWxzZSkgICAgdGhpcy5sYWJlbDEuc3RyaW5nID0gXCLmiJDlip8v5aSx6LSlOuWksei0pVwiO1xyXG4gICAgICAgIC8vIHRoaXMubGFiZWwyLnN0cmluZyA9IFwi5aSq6Ziz5oC75pWw6YePOlwiK2RhdGEuc3VuX3RvdGFsO1xyXG4gICAgICAgIC8vIHRoaXMubGFiZWwzLnN0cmluZyA9IFwi5aSq6Ziz56e75Yqo5pWw6YePOlwiK2RhdGEuc3VuX21vdmU7XHJcbiAgICAgICAgLy8gdGhpcy5sYWJlbDQuc3RyaW5nID0gXCLlpKrpmLPnp7vliqjpgJ/luqY6XCIrZGF0YS5zdW5fc3BlZWQ7XHJcbiAgICAgICAgLy8gdGhpcy5sYWJlbDUuc3RyaW5nID0gXCLlpKrpmLPph43lj6DkuKrmlbA6XCIrZGF0YS5zdW5fb3ZlcmxhcDtcclxuICAgICAgICAvLyBpZihkYXRhLnN1bl9jb2xvciA9PSBcInlcIikgIHRoaXMubGFiZWw2LnN0cmluZyA9IFwi5aSq6Ziz6aKc6ImyOnllbGxvd1wiO1xyXG4gICAgICAgIC8vIGVsc2UgaWYoZGF0YS5zdW5fY29sb3IgPT0gXCJ5clwiKSAgICB0aGlzLmxhYmVsNi5zdHJpbmcgPSBcIuWkqumYs+minOiJsjp5ZWxsb3cscmVkXCI7XHJcbiAgICAgICAgLy8gZWxzZSBpZihkYXRhLnN1bl9jb2xvciA9PSBcInlyYlwiKSAgIHRoaXMubGFiZWw2LnN0cmluZyA9IFwi5aSq6Ziz6aKc6ImyOnllbGxvdyxyZWQsYmxhY2tcIjtcclxuICAgXHJcbiAgICAgICAgLy8gdGhpcy5sYWJlbDcuc3RyaW5nID0gXCLlrozmiJDml7bpl7Q6XCIrZGF0YS5maW5pc2hfdGltZStcInNcIjtcclxuICAgICAgICAvLyB0aGlzLmxhYmVsOC5zdHJpbmcgPSBcIumavuW6puetiee6pzpcIitkYXRhLnN1bl9kaWZmaWN1bHR5K1wi57qnXCI7XHJcblxyXG4gICAgICAgIC8vIGlmKGRhdGEuc3VuX2NvbG9yID09IFwieVwiKSAgICBjb25zb2xlLmxvZyhcIuWkqumYs+minOiJsu+8mlwiLFwieWVsbG93XCIgKTtcclxuICAgICAgICAvLyBlbHNlIGlmKGRhdGEuc3VuX2NvbG9yID09IFwieXJcIikgICAgY29uc29sZS5sb2coXCLlpKrpmLPpopzoibLvvJpcIixcInllbGxvdyxyZWRcIiApO1xyXG4gICAgICAgIC8vIGVsc2UgaWYoZGF0YS5zdW5fY29sb3IgPT0gXCJ5cmJcIikgICAgY29uc29sZS5sb2coXCLlpKrpmLPpopzoibLvvJpcIixcInllbGxvdyxyZWQsYmxhY2tcIiApO1xyXG5cclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR0FNRV9EQVRBLnB1c2goR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEpO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5DTElDS19pbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd051bWJlcigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2hvdyA9PSBmYWxzZSkgdGhpcy5zaG93ID0gdHJ1ZTtcclxuICAgICAgICBlbHNlIGlmKHRoaXMuc2hvdyA9PSB0cnVlKSB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiU3VuXCIpLnNob3dOdW1iZXIodGhpcy5zaG93KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG9uRW5hYmxlICgpIHtcclxuICAgICAgICBOb3RpZmljYXRpb24ub24oXCJjbGlja1N1blwiLCB0aGlzLmNsaWNrU3VuLCB0aGlzKTtcclxuICAgICAgICAvLyBOb3RpZmljYXRpb24ub24oXCJIYW1tZXJQbGF5XCIsIHRoaXMuSGFtbWVyUGxheSwgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EaXNhYmxlICgpIHtcclxuICAgICAgICAvLyBOb3RpZmljYXRpb24ub2ZmKFwicmlnaHRBbnN3ZXJzXCIsIHRoaXMucmlnaHRBbnN3ZXJzKTtcclxuICAgICAgICBOb3RpZmljYXRpb24ub2ZmKFwiY2xpY2tTdW5cIiwgdGhpcy5jbGlja1N1bik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICBcclxuICAgIH1cclxufVxyXG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUMxQyx1Q0FBa0M7QUFDbEMsK0NBQThDO0FBQzlDLGdEQUEwQztBQUUxQztJQUF5QywrQkFBWTtJQUFyRDtRQUFBLHFFQXFuQ0M7UUFsbkNHLFVBQUksR0FBWSxJQUFJLENBQUM7UUFFckIsVUFBSSxHQUFjLElBQUksQ0FBQztRQUV2QixVQUFJLEdBQWMsSUFBSSxDQUFDO1FBRXZCLFVBQUksR0FBYyxJQUFJLENBQUM7UUFFdkIsZ0JBQVUsR0FBYyxJQUFJLENBQUM7UUFFN0IsU0FBRyxHQUFZLElBQUksQ0FBQztRQUVwQixTQUFHLEdBQVksSUFBSSxDQUFDO1FBQ3BCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFDcEIsVUFBSSxHQUFhLElBQUksQ0FBQztRQUV0Qix3QkFBd0I7UUFDeEIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFVBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsVUFBSSxHQUFZLEtBQUssQ0FBQztRQXNCdEIsZ0JBQVUsR0FBYSxJQUFJLENBQUM7O0lBd2tDaEMsQ0FBQztJQWhrQ0csNEJBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCwyQkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCx5QkFBRyxHQUFIO1FBQ0ksSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMs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QyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFHOUIsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFDaEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9ILElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsQ0FBQztZQUM3RyxJQUFJLEdBQUcsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxTQUFTLENBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsQ0FBQztZQUM5SSxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFDO2dCQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzthQUN0QjtpQkFDSSxJQUFHLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxFQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzthQUN0QjtZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBRTdCO1FBRUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCw0QkFBTSxHQUFOLFVBQU8sSUFBSSxFQUFDLEdBQUc7UUFDWCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNuQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRWpFLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdCLElBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQ3pCLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFDckMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ2YsSUFBRyxDQUFDLElBQUksR0FBRztvQkFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUNqRixJQUFHLFFBQVEsSUFBSSxLQUFLLEVBQUM7b0JBQ2pCLENBQUMsR0FBRyxLQUFLLENBQUM7b0JBQ1YsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQztnQkFDRCxJQUFHLFFBQVEsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQ2xELENBQUMsR0FBRyxLQUFLLENBQUM7aUJBQ2I7YUFDTDtTQUNIO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELDZCQUFPLEdBQVAsVUFBUSxJQUFJLEVBQUMsR0FBRztRQUVaLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ25DLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFakUsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFHN0IsSUFBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7WUFDekIsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUNyQyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDZixJQUFHLENBQUMsSUFBSSxHQUFHO29CQUFFLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQ2xGLElBQUcsUUFBUSxJQUFJLEtBQUssRUFBQztvQkFDakIsQ0FBQyxHQUFHLEtBQUssQ0FBQztvQkFDVixLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2xDO2dCQUNELElBQUcsUUFBUSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsRUFBQztvQkFDbEQsQ0FBQyxHQUFHLEtBQUssQ0FBQztpQkFDYjthQUNMO1NBQ0g7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsaUNBQVcsR0FBWCxVQUFZLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBQyxHQUFHO1FBQzFCLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNmLElBQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUcsUUFBUSxHQUFHLEdBQUcsRUFBQztZQUNkLElBQUcsR0FBRyxJQUFJLElBQUksRUFBQztnQkFDWCxJQUFHLFFBQVEsR0FBRyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUM7b0JBQzlELEVBQUUsR0FBRyxJQUFJLENBQUM7aUJBQ2I7O29CQUNJLEVBQUUsR0FBRyxLQUFLLENBQUM7YUFDbkI7aUJBQ0c7Z0JBQ0EsSUFBRyxRQUFRLEdBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFDO29CQUM5RCxFQUFFLEdBQUcsSUFBSSxDQUFDO2lCQUNiOztvQkFDSSxFQUFFLEdBQUcsS0FBSyxDQUFDO2FBQ25CO1NBQ0o7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxrQ0FBWSxHQUFaLFVBQWEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFDLEdBQUc7UUFDM0IsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2YsSUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBRyxRQUFRLEdBQUcsR0FBRyxFQUFDO1lBQ2QsSUFBRyxHQUFHLElBQUksSUFBSSxFQUFDO2dCQUNYLElBQUcsUUFBUSxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7b0JBQUUsRUFBRSxHQUFHLElBQUksQ0FBQzs7b0JBQzVFLEVBQUUsR0FBRyxLQUFLLENBQUM7YUFDbkI7aUJBQ0c7Z0JBQ0EsRUFBRSxHQUFHLElBQUksQ0FBQzthQUNiO1NBQ0o7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFHRCxnQ0FBVSxHQUFWLFVBQVcsTUFBTSxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsTUFBTTtRQUNoQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBRyxLQUFLLElBQUksQ0FBQztZQUFDLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxQyxJQUFHLEtBQUssSUFBSSxDQUFDO1lBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQy9DLElBQUcsS0FBSyxJQUFJLENBQUM7WUFBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGlDQUFXLEdBQVg7UUFDSSxLQUFJLElBQUksQ0FBQyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQztZQUNsRSxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBQztnQkFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7YUFDdkQ7U0FDSjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVELGdDQUFVLEdBQVYsVUFBVyxLQUFLLEVBQUMsR0FBRyxFQUFDLElBQUk7UUFDckIsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxDLElBQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsRUFBRSxHQUFHLEVBQUUsR0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3JDLEVBQUUsQ0FBQyxJQUFJLEVBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUM7YUFDdEIsS0FBSyxFQUFFLENBQUM7SUFDYixDQUFDO0lBRUQsb0NBQWMsR0FBZCxVQUFlLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDekIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUMsRUFBRSxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsR0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDdkQsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNsQixDQUFDO0lBRUQsdUNBQWlCLEdBQWpCLFVBQWtCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDNUIsSUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBRyxRQUFRLEdBQUcsR0FBRztZQUFFLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDbEMsSUFBTSxJQUFJLEdBQUcsUUFBUSxHQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELHdDQUFrQixHQUFsQixVQUFtQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQzdCLElBQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUcsUUFBUSxHQUFHLElBQUk7WUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLElBQU0sSUFBSSxHQUFHLFFBQVEsR0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCx3Q0FBa0IsR0FBbEIsVUFBbUIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUM3QixJQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsRUFBRSxHQUFHLEVBQUUsR0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFHLFFBQVEsR0FBRyxJQUFJO1lBQUUsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNwQyxJQUFNLElBQUksR0FBRyxRQUFRLEdBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTTtJQUNOLDRCQUFNLEdBQU4sVUFBTyxJQUFJO1FBQVgsaUJBZ0NDO1FBL0JHLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ3JDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBRW5DLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBQyxJQUFJLENBQUM7UUFDbEMscUNBQXFDO1FBQ3JDLElBQUksS0FBSyxHQUFHLEdBQUcsR0FBQyxDQUFDLE1BQU0sR0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDbEIsRUFBRSxDQUFDLEdBQUcsRUFBQyxFQUFDLEtBQUssRUFBQyxHQUFHLEVBQUMsQ0FBQzthQUNuQixFQUFFLENBQUMsS0FBSyxFQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDO2FBQ2xCLEtBQUssRUFBRSxDQUFDO1FBRVQsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2pCLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixFQUFFLENBQUMsS0FBSyxFQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDO2FBQ2hCLEtBQUssRUFBRSxDQUFDO1FBRVQscUJBQXFCO1FBQ3JCLGNBQWM7UUFDZCxvQkFBb0I7UUFDcEIsWUFBWTtRQUVaLFVBQVUsQ0FBQztZQUNQLG9FQUFvRTtZQUNwRSx3QkFBd0I7WUFDeEIsSUFBSTtZQUNKLElBQUcsS0FBSSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUM7Z0JBQ2xCLEtBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNwQjtRQUVMLENBQUMsRUFBRSxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUNELFFBQVE7SUFDUixtQ0FBYSxHQUFiLFVBQWMsTUFBYTtRQUN2QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2YsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBLFNBQVM7UUFDOUMsSUFBSSxTQUFTLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUEsZUFBZTtRQUN0RCxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPO1FBQy9DLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDakIsSUFBRyxHQUFHLEdBQUcsRUFBRTtZQUFFLENBQUMsR0FBRyxHQUFHLEdBQUMsR0FBRyxDQUFDO1FBQ3pCLElBQUksUUFBUSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUEsYUFBYTtRQUM5RCxJQUFJLElBQUksR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUcsUUFBUSxHQUFHLEVBQUU7WUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQztRQUN4QyxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLENBQUM7SUFHRCxjQUFjO0lBQ2QseUNBQW1CLEdBQW5CO1FBQ0ksSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRTtZQUMzQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RCxJQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFDO2dCQUNsQixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3FCQUN2QixFQUFFLENBQUMsSUFBSSxFQUFDLEVBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7cUJBQzVDLEVBQUUsQ0FBQyxJQUFJLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQztxQkFDOUMsS0FBSyxFQUFFLENBQUE7Z0JBQ1IsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzVDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO3FCQUNiLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLENBQUM7cUJBQ3JCLEtBQUssQ0FBQyxHQUFHLENBQUM7cUJBQ1YsRUFBRSxDQUFDLEdBQUcsRUFBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQztxQkFDbkIsS0FBSyxFQUFFLENBQUM7YUFDWjtZQUNELElBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEVBQUM7Z0JBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFFYixxRUFBcUU7Z0JBQ3JFLElBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDO29CQUFFLElBQUksR0FBRyxRQUFRLENBQUMsa0JBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUMvRCxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUUsRUFBRSxDQUFDO2dCQUNoRiwyREFBMkQ7Z0JBQzNELFlBQVk7Z0JBQ1osSUFBRyxJQUFJLEdBQUcsS0FBSztvQkFBRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztnQkFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN0QjtTQUNKO0lBQ0wsQ0FBQztJQUVELDZCQUFPLEdBQVA7UUFDSSxJQUFJLElBQUksR0FBRyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDeEMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsSUFBSSxRQUFRLEdBQUc7WUFDWCxTQUFTLEVBQUMsT0FBTztZQUNqQixNQUFNLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3BCLG1CQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFDLGNBQVcsQ0FBQyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELGdDQUFVLEdBQVY7UUFDSSxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckQsSUFBRyxPQUFPLElBQUksVUFBVSxJQUFJLE9BQU8sSUFBRSxJQUFJLEVBQUM7WUFDdEMsT0FBTyxHQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNoQzthQUNHO1lBQ0EsSUFBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBQztnQkFDcEMsT0FBTyxHQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNoQztpQkFDRztnQkFDQSxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLElBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUM7b0JBQ2YsSUFBSSxJQUFJLENBQUMsQ0FBQztpQkFDYjtnQkFDRCxPQUFPLEdBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDNUMsa0JBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBQzdDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUMsT0FBTyxDQUFDLENBQUM7YUFDbEQ7U0FDSjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxvQ0FBYyxHQUFkLFVBQWUsR0FBRztRQUNkLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0NBQVUsR0FBVjtRQUNJLGVBQWU7UUFDZixJQUFNLFVBQVUsR0FBRyxnRUFBZ0UsQ0FBQztRQUNwRixnQkFBZ0I7UUFDaEIsSUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXJCLG1CQUFtQjtRQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JCLG1CQUFtQjtZQUN2QixJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEUsY0FBYztZQUNkLElBQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEQsWUFBWTtZQUNaLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDOUI7UUFFRCxJQUFJLElBQUksR0FBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDeEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCw2QkFBTyxHQUFQLFVBQVEsSUFBSTtRQUNSLElBQUksUUFBUSxHQUFHO1lBQ1gsTUFBTSxFQUFDLENBQUM7WUFDUixjQUFjLEVBQUUsSUFBSTtZQUNwQixlQUFlLEVBQUUsa0JBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDakQsU0FBUyxFQUFFLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPO1NBRWhELENBQUM7UUFDRix5QkFBeUI7UUFDekIsbUJBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLGNBQVcsQ0FBQyxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqRCxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzdDLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLENBQUM7YUFDckIsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNSLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLENBQUM7YUFDcEIsSUFBSSxDQUFDO1lBQ0YsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxFQUFFLENBQUE7SUFFWixDQUFDO0lBRUQsNEJBQU0sR0FBTjtRQUVJLElBQUksSUFBSSxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUN6QyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWxDLGtCQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakUsa0JBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELGdDQUFVLEdBQVY7UUFDSSxJQUFHLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSztZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQ25DLElBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDN0MsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lBR0QsOEJBQVEsR0FBUjtRQUNJLDJCQUFZLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pELHdEQUF3RDtJQUM1RCxDQUFDO0lBRUQsK0JBQVMsR0FBVDtRQUNJLHVEQUF1RDtRQUN2RCwyQkFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFHRCw0QkFBTSxHQUFOLFVBQVEsRUFBRTtJQUVWLENBQUM7SUFqbkNEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ0c7SUFFckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzs2Q0FDRztJQUV2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDOzZDQUNHO0lBRXZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7NkNBQ0c7SUFFdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzttREFDUztJQUU3QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzRDQUNFO0lBZ0NwQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO21EQUNTO0lBN0NYLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0FxbkMvQjtJQUFELGtCQUFDO0NBcm5DRCxBQXFuQ0MsQ0FybkN3QyxFQUFFLENBQUMsU0FBUyxHQXFuQ3BEO2tCQXJuQ29CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuaW1wb3J0IEdhbWVEYXRhIGZyb20gJy4vR2FtZURhdGEnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuL05vdGlmaWNhdGlvbic7XHJcbmltcG9ydCBIdHRwVXRpbCBmcm9tICcuL2NyeXB0by9zZXJ2ZXJBUEknO1xyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHYW1lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBiYWxsOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBxaXUxOiBjYy5QcmVmYWIgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHFpdTI6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgcWl1MzogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBsaW5lUHJlZmFiOiBjYy5QcmVmYWIgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBoaXQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIGJnMTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBiZzI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgdGltZTogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG4gICAgYmVnaW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGZ1aHVvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBvdmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBzaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBjb3VudFRpbWU6bnVtYmVyO1xyXG4gICAgdGltZUNvdW50Om51bWJlcjtcclxuICAgIGZpdFRvcDpudW1iZXI7XHJcbiAgICBmaXRCb3Q6bnVtYmVyO1xyXG4gICAgbGV2ZWw6bnVtYmVyO1xyXG4gICAgY2xpY2tOb3c6bnVtYmVyO1xyXG4gICAgc3RhcnRUaW1lOm51bWJlcjtcclxuICAgIG92ZXJUaW1lOm51bWJlcjtcclxuICAgIHdpblRpbWU6bnVtYmVyO1xyXG4gICAgY2xpY2tDb3VudDpudW1iZXI7XHJcbiAgICB0aW1lU3RhcnQ6bnVtYmVyO1xyXG4gICAgcm91dGVfQXJyYXk6IGFueVtdO1xyXG4gICAgbm93X0FycmF5OiBhbnlbXTtcclxuICAgIGJhbGxfQXJyYXk6IGFueVtdO1xyXG4gICAgTGluZV9BcnJheTogYW55W107XHJcbiAgICBQb3NfQXJyYXk6IGFueVtdO1xyXG4gICAgdGltZV9BcnJheTogYW55W107XHJcbiAgICBjb2xvcl9BcnJheTogYW55W107XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxldmVsTGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIG1vdmVBcnJheTogbnVtYmVyW107XHJcbiAgICByZXBlYXQ6IG51bWJlcjtcclxuICAgIG51bWJlclJlcGVhdDogbnVtYmVyO1xyXG4gICAgcm91bmQ6IG51bWJlcjtcclxuICAgIHBhdXNlOiBib29sZWFuO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLmZpdCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG4gICAgZml0KCl7XHJcbiAgICAgICAgdGhpcy5maXRUb3AgPSA0NTA7ICAvLzYwMFxyXG4gICAgICAgIHRoaXMuZml0Qm90ID0gLTYwMDsgLy8tNzAwXHJcbiAgICAgICAgdmFyIGpnID0gdGhpcy5zZXRGaXQoKTtcclxuICAgICAgICBpZighamcpe1xyXG4gICAgICAgICAgICB0aGlzLmZpdFRvcCA9IDYwMDtcclxuICAgICAgICAgICAgdGhpcy5maXRCb3QgPSAtNzAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRTZXRTY3JlZW5SZXNvbHV0aW9uRmxhZyAoKSB7XHJcbiAgICAgICAgbGV0IHNpemUgPSBjYy53aW5TaXplO1xyXG4gICAgICAgIGxldCB3aWR0aCA9IHNpemUud2lkdGg7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IHNpemUuaGVpZ2h0O1xyXG4gICAgICAgIGlmICgoaGVpZ2h0IC8gd2lkdGgpID4gKDE2LjIgLyA5KSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy/liKTmlq3lhajpnaLlsY/pgILphY1cclxuICAgIHNldEZpdCAoKSB7XHJcbiAgICAgICAgbGV0IGZsYWcgPSB0aGlzLmdldFNldFNjcmVlblJlc29sdXRpb25GbGFnKCk7XHJcbiAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmxhZztcclxuICAgIH1cclxuXHJcbiAgICAvL+WIneWni+WMluaVsOaNrlxyXG4gICAgaW5pdCgpe1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVPdmVyXCIpLnpJbmRleCA9IDEwMDtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lT3ZlclwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmJhbGwuekluZGV4ID0gMTAwO1xyXG4gICAgICAgIHRoaXMuYmcxID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmcxXCIpO1xyXG4gICAgICAgIHRoaXMuYmcyID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmcyXCIpO1xyXG4gICAgICAgIHRoaXMudGltZSA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJzaG93QnRuXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYmVnaW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZ1aHVvID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJvdW5kID0gMDsgXHJcbiAgICAgICAgdGhpcy5sZXZlbCA9IDI7XHJcbiAgICAgICAgdGhpcy5jb3VudFRpbWUgPSA2MDtcclxuICAgICAgICBpZihHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b20gIT0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMubGV2ZWwgPSBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b207XHJcbiAgICAgICAgICAgIC8vIHRoaXMubGV2ZWxMYWJlbC5zdHJpbmcgPSB0aGlzLmxldmVsICsgXCJcIjtcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8uY3VzdG9tICs9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRUaW1lID0gMTIwMDAwMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMubGV2ZWxMYWJlbC5zdHJpbmcgPSB0aGlzLmxldmVsICsgXCJcIjtcclxuIFxyXG4gICAgICAgIHRoaXMudGltZUNvdW50ID0gMC4xO1xyXG4gICAgICAgIHRoaXMuY2xpY2tOb3cgPSAwO1xyXG4gICAgICAgIHRoaXMuY2xpY2tDb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy50aW1lU3RhcnQgPSAwO1xyXG4gICAgICAgIHRoaXMucmVwZWF0ID0gLTE7XHJcbiAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSAtMTtcclxuICAgICAgICB0aGlzLnJvdXRlX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5tb3ZlQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLm5vd19BcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuYmFsbF9BcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuUG9zX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy50aW1lX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5jb2xvcl9BcnJheSA9IFtdO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HQU1FX0RBVEEgPSBbXTtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5zdWNjZXNzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMub3ZlclRpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMud2luVGltZSA9IDA7XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwgPSAwO1xyXG5cclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy51cGRhdGVDb3VudERvd25UaW1lLDEpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5zdGFydEdhbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrU2NlbmUoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8v5LiL5LiA5YWz77yM5oiW6ICF6YeN5paw5byA5aeL77yM5oiW6ICF6L+U5Zue5LiK5LiA5YWz77yM5qC55o2ubGV2ZWzlhrPlrppcclxuICAgIHJlU3RhcnQodHlwZSl7XHJcbiAgICAgICAgLy8gaWYoR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8uY3VzdG9tICE9IDApe1xyXG4gICAgICAgIC8vICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwic2hvd0J0blwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lMaW5lKCk7XHJcbiAgICAgICAgdGhpcy50aW1lQ291bnQgPSAwLjE7XHJcbiAgICAgICAgdGhpcy5jbGlja05vdyA9IDA7XHJcbiAgICAgICAgdGhpcy50aW1lU3RhcnQgPSAwO1xyXG4gICAgICAgIHRoaXMucmVwZWF0ID0gLTE7XHJcbiAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSAtMTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmJlZ2luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yb3V0ZV9BcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMubm93X0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5iYWxsX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5Qb3NfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLm1vdmVBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMudGltZV9BcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY29sb3JfQXJyYXkgPSBbXTtcclxuICAgICAgICBcclxuICAgICAgICBpZih0eXBlID09IDApe1xyXG4gICAgICAgICAgICB0aGlzLmJnTW92ZSgxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih0eXBlID09IDEpe1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0R2FtZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHR5cGUgPT0gMil7XHJcbiAgICAgICAgICAgIHRoaXMuYmdNb3ZlKC0xKTtcclxuICAgICAgICB9XHJcbiAgICBcclxuICAgIH1cclxuXHJcbiAgICBiZWdpbl9HdWlkZSgpe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+iOt+WPluaXtumXtOaIs1xyXG4gICAgZ2V0VGltZSgpe1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIHJldHVybiB0aW1lc3RhbXA7XHJcbiAgICB9XHJcblxyXG4gICAgLy/ojrfog5xcclxuICAgIHBhc3NMZXZlbCgpe1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUxpbmUoKTtcclxuICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2UgJiYgdGhpcy5jb3VudFRpbWUgPj0gMCl7XHJcbiAgICAgICAgICAgIGxldCB0aW1lQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgbGV0IHRpbWVDb3VudCA9IDA7XHJcbiAgICAgICAgICAgIGxldCBiYWxsID0gdGhpcy5iYWxsX0FycmF5WzBdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MTsgaTwgdGhpcy5iYWxsX0FycmF5Lmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB0aW1lID0gdGhpcy5jYWxjdWxhdGVEaXN0YW5jZTIodGhpcy5iYWxsX0FycmF5W2ldLngsdGhpcy5iYWxsX0FycmF5W2ldLnksXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2ktMV0ueCx0aGlzLmJhbGxfQXJyYXlbaS0xXS55KTtcclxuICAgICAgICAgICAgICAgIHRpbWVBcnJheS5wdXNoKHRpbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvcihsZXQgaz0xOyBrPCB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBrKyspe1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4oYmFsbClcclxuICAgICAgICAgICAgICAgICAgICAudG8odGltZUFycmF5W2stMV0se3g6dGhpcy5iYWxsX0FycmF5W2tdLngseTp0aGlzLmJhbGxfQXJyYXlba10ueX0pXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoayA9PSB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoLTEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsLnBvc2l0aW9uID0gY2MudjMoYmFsbC54LGJhbGwueSwwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWxsLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJTdW4oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlU3RhcnQoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAyMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgIH0sIHRpbWVDb3VudCoxMDAwKTtcclxuICAgICAgICAgICAgICAgIHRpbWVDb3VudCArPSAodGltZUFycmF5W2stMV0rMC4xKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICAvL+Wksei0pVxyXG4gICAgbG9zZUxldmVsKHR5cGUpe1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUxpbmUoKTtcclxuICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2UgJiYgdGhpcy5jb3VudFRpbWUgPj0gMCl7XHJcbiAgICAgICAgICAgIGxldCBiYWxsID0gdGhpcy5iYWxsX0FycmF5WzBdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGs9MTsgazwgdGhpcy5iYWxsX0FycmF5Lmxlbmd0aDsgaysrKXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbF9BcnJheVtrXSlcclxuICAgICAgICAgICAgICAgIC50bygyLHt4OmJhbGwueCx5OmJhbGwueX0pXHJcbiAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlba10uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoayA9PSB0aGlzLmJhbGxfQXJyYXkubGVuZ3RoLTEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGwub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsLnBvc2l0aW9uID0gY2MudjMoYmFsbC54LGJhbGwueSwwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhclN1bigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlU3RhcnQodHlwZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyU3VuKCl7XHJcbiAgICAgICAgZm9yKGxldCBrPTA7IGs8IHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7IGsrKyl7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtrXSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v54K55Ye75aSq6Ziz5omn6KGM5pa55rOVXHJcbiAgICBjbGlja1N1bihkYXRhKXtcclxuICAgICAgICBpZih0aGlzLmJlZ2luID09IHRydWUpe1xyXG4gICAgICAgICAgICB0aGlzLmNsaWNrQ291bnQgKz0gMTtcclxuICAgICAgICAgICAgbGV0IGNsaWNrVGltZSA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnRpbWVfQXJyYXkucHVzaCgoY2xpY2tUaW1lIC0gdGhpcy50aW1lU3RhcnQpKVxyXG4gICAgICAgICAgICB0aGlzLnRpbWVTdGFydCA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICBpZihkYXRhID09IHRoaXMuY2xpY2tOb3cpe1xyXG4gICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkF1ZGlvTWFuYWdlci5wbGF5QXVkaW9CdXR0b24oKTtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuY2xpY2tOb3cgPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmUoY2MudjIodGhpcy5iYWxsX0FycmF5W3RoaXMuY2xpY2tOb3ctMV0ueCx0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXS55KSxcclxuICAgICAgICAgICAgICAgICAgICBjYy52Mih0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vd10ueCx0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vd10ueSksXHJcbiAgICAgICAgICAgICAgICAgICAgMC4yKTsgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuY2xpY2tOb3cgKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnRvdGFsICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXSlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlbdGhpcy5jbGlja05vdy0xXS5nZXRDaGlsZEJ5TmFtZShcImd1YW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIH0sIDIwMCk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmNsaWNrTm93ID09IHRoaXMubm93X0FycmF5Lmxlbmd0aCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwgKz0gdGhpcy5jbGlja05vdztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vdmVyVGltZSA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc3RhcnRUaW1lID4gMCAmJiB0aGlzLm92ZXJUaW1lID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSArPSAodGhpcy5vdmVyVGltZSAtIHRoaXMuc3RhcnRUaW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmiJDlip9cIixHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUsdGhpcy5vdmVyVGltZSx0aGlzLnN0YXJ0VGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWVhbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZmluaXNoX3RpbWUgPSBwYXJzZUludCgodGhpcy5vdmVyVGltZSAtIHRoaXMuc3RhcnRUaW1lKS8xMDArXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSAwOyB0aGlzLm92ZXJUaW1lID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjMzMzMzMzMzXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb2xvciA9IFwieVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubGV2ZWwgPCA0ICYmIHRoaXMubGV2ZWwgPiAxKWNvbG9yID0gXCJ5clwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5sZXZlbCA+PSA0KSBjb2xvciA9IFwieXJiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHdpbiA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldpblwiKTtcclxuICAgICAgICAgICAgICAgICAgICB3aW4uYWN0aXZlID0gdHJ1ZTsgd2luLnNldFNjYWxlKDApO1xyXG4gICAgICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5BdWRpb01hbmFnZXIucGxheVdpbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91bmQgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3VuQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBtPTAgOyBtPHRoaXMubW92ZUFycmF5Lmxlbmd0aDttKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobSA9PSB0aGlzLnJlcGVhdCB8fCBtID09IHRoaXMubnVtYmVyUmVwZWF0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVttXSA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5BcnJheS5wdXNoKHRoaXMubW92ZUFycmF5W21dKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IG09MCA7IG08dGhpcy5iYWxsX0FycmF5Lmxlbmd0aDttKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobSA9PSB0aGlzLnJlcGVhdCB8fCBtID09IHRoaXMubnVtYmVyUmVwZWF0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5BcnJheS5wdXNoKDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bkFycmF5LnB1c2goMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEgPSBcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZToxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzczp0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQ6dGhpcy5yb3VuZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsU3VuQ291bnQ6dGhpcy5ub3dfQXJyYXkubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZWRTdW5Db3VudDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVOdW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW5TcGVlZDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVTcGVlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXBTdW5Db3VudDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLnJlcGVhdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yTGlzdDp0aGlzLmNvbG9yX0FycmF5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246ZmluaXNoX3RpbWUvMTAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmaWN1bHR5TGV2ZWw6dGhpcy5sZXZlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bkxpc3Q6c3VuQXJyYXksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwVGltZUxpc3Q6dGhpcy50aW1lX0FycmF5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyOnRoaXMuY291bnRUaW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3V0UHV0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4od2luKVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMDEse3NjYWxlOjIuNX0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMzUse3NjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZWxheSgwLjQpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95TGluZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2UgJiYgdGhpcy5jb3VudFRpbWUgPj0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmxldmVsID49IDE1KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5zdWNjZXNzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxldmVsICs9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5sZXZlbExhYmVsLnN0cmluZyA9IHRoaXMubGV2ZWwgKyBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnVodW8gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZXZlbCArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMubGV2ZWxMYWJlbC5zdHJpbmcgPSB0aGlzLmxldmVsICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZ1aHVvID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzTGV2ZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvc3MoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyB0aGlzLmhpdEFjdGlvbihkYXRhKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgc2V0TG9zcygpe1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5BdWRpb01hbmFnZXIucGxheVdhcm5pbmcoKTtcclxuICAgICAgICB0aGlzLmJlZ2luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vdmVyVGltZSA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgIGlmKHRoaXMuc3RhcnRUaW1lID4gMCAmJiB0aGlzLm92ZXJUaW1lID4gMCl7XHJcbiAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSArPSAodGhpcy5vdmVyVGltZSAtIHRoaXMuc3RhcnRUaW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGZpbmlzaF90aW1lID0gcGFyc2VJbnQoKHRoaXMub3ZlclRpbWUgLSB0aGlzLnN0YXJ0VGltZSkvMTAwK1wiXCIpO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gMDsgdGhpcy5vdmVyVGltZSA9IDA7XHJcbiAgICAgICAgbGV0IGNvbG9yID0gXCJ5XCI7XHJcbiAgICAgICAgaWYodGhpcy5sZXZlbCA8IDQgJiYgdGhpcy5sZXZlbCA+IDEpY29sb3IgPSBcInlyXCI7XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmxldmVsID49IDQpIGNvbG9yID0gXCJ5cmJcIjtcclxuICAgICAgICB0aGlzLnJvdW5kICs9IDE7XHJcbiAgICAgICAgbGV0IHN1bkFycmF5ID0gW107XHJcbiAgICAgICAgaWYodGhpcy5tb3ZlQXJyYXkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgIGZvcihsZXQgbT0wIDsgbTx0aGlzLm1vdmVBcnJheS5sZW5ndGg7bSsrKXtcclxuICAgICAgICAgICAgICAgIGlmKG0gPT0gdGhpcy5yZXBlYXQgfHwgbSA9PSB0aGlzLm51bWJlclJlcGVhdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQXJyYXlbbV0gPSAyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc3VuQXJyYXkucHVzaCh0aGlzLm1vdmVBcnJheVttXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgZm9yKGxldCBtPTAgOyBtPHRoaXMuYmFsbF9BcnJheS5sZW5ndGg7bSsrKXtcclxuICAgICAgICAgICAgICAgIGlmKG0gPT0gdGhpcy5yZXBlYXQgfHwgbSA9PSB0aGlzLm51bWJlclJlcGVhdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VuQXJyYXkucHVzaCgyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICBzdW5BcnJheS5wdXNoKDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gXHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEgPSBcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6MSxcclxuICAgICAgICAgICAgc3VjY2VzczpmYWxzZSxcclxuICAgICAgICAgICAgcm91bmQ6dGhpcy5yb3VuZCxcclxuICAgICAgICAgICAgdG90YWxTdW5Db3VudDp0aGlzLm5vd19BcnJheS5sZW5ndGgsXHJcbiAgICAgICAgICAgIG1vdmVkU3VuQ291bnQ6R2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk9bdGhpcy5sZXZlbC0xXS5tb3ZlTnVtYmVyLFxyXG4gICAgICAgICAgICBzdW5TcGVlZDpHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1vdmVTcGVlZCxcclxuICAgICAgICAgICAgb3ZlcmxhcFN1bkNvdW50OkdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV0ucmVwZWF0LFxyXG4gICAgICAgICAgICBjb2xvckxpc3Q6dGhpcy5jb2xvcl9BcnJheSxcclxuICAgICAgICAgICAgZHVyYXRpb246ZmluaXNoX3RpbWUvMTAsXHJcbiAgICAgICAgICAgIGRpZmZpY3VsdHlMZXZlbDp0aGlzLmxldmVsLFxyXG4gICAgICAgICAgICBzdW5MaXN0OnN1bkFycmF5LFxyXG4gICAgICAgICAgICBzdGVwVGltZUxpc3Q6dGhpcy50aW1lX0FycmF5LFxyXG4gICAgICAgICAgICByZW1haW5kZXI6dGhpcy5jb3VudFRpbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vdXRQdXQoKTtcclxuICAgICAgICB0aGlzLnNldERhdGEoKTtcclxuICAgICAgICBpZih0aGlzLmZ1aHVvID09IHRydWUpe1xyXG4gICAgICAgICAgICB0aGlzLmZ1aHVvID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubG9zZUxldmVsKDEpO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgaWYodGhpcy5sZXZlbCA+IDIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZXZlbCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5sZXZlbExhYmVsLnN0cmluZyA9IHRoaXMubGV2ZWwgKyBcIlwiO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mdWh1byA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmZ1aHVvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvc2VMZXZlbCgyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb3NlTGV2ZWwoMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG92ZXIgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJPdmVyXCIpO1xyXG4gICAgICAgIGNjLnR3ZWVuKG92ZXIpXHJcbiAgICAgICAgLnRvKDAuMjUse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgIC50bygwLjIse29wYWNpdHk6MH0pXHJcbiAgICAgICAgLmRlbGF5KDAuMSlcclxuICAgICAgICAudG8oMC4xNSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgIC5kZWxheSgwLjEpXHJcbiAgICAgICAgLnRvKDAuMSx7b3BhY2l0eTowfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBoaXRBY3Rpb24oZGF0YSl7XHJcbiAgICAgICAgdGhpcy5oaXQuYWN0aXZlID0gdHJ1ZTsgdGhpcy5oaXQub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5oaXQuc2V0UG9zaXRpb25cclxuICAgICAgICB0aGlzLmhpdC5zZXRQb3NpdGlvbih0aGlzLmJhbGxfQXJyYXlbZGF0YV0ueCszNSx0aGlzLmJhbGxfQXJyYXlbZGF0YV0ueSszNSk7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5oaXQpXHJcbiAgICAgICAgLnRvKDAse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAudG8oMC4yLHtwb3NpdGlvbjpjYy52Myh0aGlzLmhpdC54LTM1LHRoaXMuaGl0LnktMzUsMCl9KVxyXG4gICAgICAgIC5kZWxheSgwLjIpXHJcbiAgICAgICAgLnRvKDAuMSx7b3BhY2l0eTowfSlcclxuICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgdGhpcy5oaXQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+a4uOaIj1xyXG4gICAgc3RhcnRHYW1lKCl7XHJcbiAgICAgICAgaWYodGhpcy5vdmVyID09IGZhbHNlICYmIHRoaXMuY291bnRUaW1lID4gMCl7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVN1bigpO1xyXG4gICAgICAgICAgICB0aGlzLmJlZ2luID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbClcclxuICAgICAgICAgICAgLnRvKDAuNSx7b3BhY2l0eToyNTUsc2NhbGU6MS4zfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMucnVuR2FtZSgpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJ1bkdhbWUoKXtcclxuICAgICAgICBsZXQgdGltZSA9IC02NTA7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5ub3dfQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICB0aW1lID0gdGhpcy5ub3dfQXJyYXlbaV0udGltZSoxMDAwICsgdGltZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gdGhpcy5ub3dfQXJyYXlbaV0udGltZUNvdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRlbXAgPiAwLjUpIHRlbXAgPSAwLjU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoaSAhPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5iYWxsICYmIHRoaXMubm93X0FycmF5W2ldKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTGluZShjYy52Mih0aGlzLmJhbGwueCx0aGlzLmJhbGwueSksY2MudjIodGhpcy5ub3dfQXJyYXlbaV0ueCx0aGlzLm5vd19BcnJheVtpXS55KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm93X0FycmF5W2ldLnRpbWUtdGVtcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5iYWxsKVxyXG4gICAgICAgICAgICAgICAgICAgIC50byh0aGlzLm5vd19BcnJheVtpXS50aW1lLXRlbXAse3g6dGhpcy5ub3dfQXJyYXlbaV0ueCx5OnRoaXMubm93X0FycmF5W2ldLnl9KVxyXG4gICAgICAgICAgICAgICAgICAgIC50bygwLjEse3NjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlQmFsbChpLHRoaXMubm93X0FycmF5W2ldLmNvbG9yLHRoaXMubm93X0FycmF5W2ldLnNwZWVkLHRoaXMubm93X0FycmF5W2ldLnJlcGVhdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGkgPT0gdGhpcy5ub3dfQXJyYXkubGVuZ3RoIC0xKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbC5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveUxpbmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJlZ2luR2FtZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV0ubW92ZU51bWJlcjwxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBY3Rpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDE1MCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9LCB0aW1lKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVNb3ZlKCl7XHJcbiAgICAgICAgaWYodGhpcy5vdmVyID09IGZhbHNlKXtcclxuICAgICAgICAgICAgbGV0IGluZm8gPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdO1xyXG4gICAgICAgICAgICAvL+aUueWPmOenu+WKqOmAn+W6plxyXG4gICAgICAgICAgICB2YXIgc3BlZWQgPSA3O1xyXG4gICAgICAgICAgICBpZihpbmZvLm1vdmVTcGVlZCA+PSAyKXtcclxuICAgICAgICAgICAgICAgIHNwZWVkID0gNyAtIGluZm8ubW92ZVNwZWVkLzI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoaW5mby5yZXBlYXQgPT0gMSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlcGVhdCAgPSBwYXJzZUludCgoTWF0aC5yYW5kb20oKSooaW5mby5udW1iZXItMSkrMSkgKyBcIlwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wTnVtYmVyID0gMDtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMucmVwZWF0ID0gNDtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMucmVwZWF0ICA+IDQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyUmVwZWF0ID0gcGFyc2VJbnQoTWF0aC5yYW5kb20oKSo0ICsgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5yZXBlYXQgID09IChpbmZvLm51bWJlci0xKSkgIC8v5aaC5p6c5piv5pyA5ZCO5LiA5LiqIOS4jeiDvei3n+esrOS4gOS4qumHjeWPoFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyUmVwZWF0ID0gdGhpcy5yZXBlYXQgIC0gcGFyc2VJbnQoIChNYXRoLnJhbmRvbSgpKjMgKyAyKSsgXCJcIilcclxuICAgICAgICAgICAgICAgICAgICB0ZW1wTnVtYmVyID0gIHRoaXMuUG9zX0FycmF5W3RoaXMubnVtYmVyUmVwZWF0XTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlBvc19BcnJheVt0aGlzLnJlcGVhdCBdID0gdGVtcE51bWJlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7IC8vIDAgMSAyIDMgNCA1IFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIDYgLSAzIC0gMSAgPSAyIDQgIDAxIDRcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnJlcGVhdCAgPT0gMCkgdGhpcy5yZXBlYXQgID0gMTtcclxuICAgICAgICAgICAgICAgICAgICBpZigoaW5mby5udW1iZXItMS10aGlzLnJlcGVhdCApID09IDIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IGluZm8ubnVtYmVyIC0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE51bWJlciA9ICB0aGlzLlBvc19BcnJheVt0aGlzLm51bWJlclJlcGVhdF07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoKGluZm8ubnVtYmVyLTEtdGhpcy5yZXBlYXQgKSA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSB0aGlzLnJlcGVhdCAtIDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBOdW1iZXIgPSAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5udW1iZXJSZXBlYXRdO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigoaW5mby5udW1iZXItMS10aGlzLnJlcGVhdCApID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm51bWJlclJlcGVhdCA9IHRoaXMucmVwZWF0IC0gMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE51bWJlciA9ICB0aGlzLlBvc19BcnJheVt0aGlzLm51bWJlclJlcGVhdF07XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKChpbmZvLm51bWJlci0xLXRoaXMucmVwZWF0ICkgPiAyKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSBwYXJzZUludChNYXRoLnJhbmRvbSgpKihpbmZvLm51bWJlci10aGlzLnJlcGVhdCAtMikgKyBcIlwiKSArIHRoaXMucmVwZWF0ICArIDIgO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTnVtYmVyID0gIHRoaXMuUG9zX0FycmF5W3RoaXMubnVtYmVyUmVwZWF0XTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJSZXBlYXQgPSB0aGlzLnJlcGVhdCAtIDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBOdW1iZXIgPSAgdGhpcy5Qb3NfQXJyYXlbdGhpcy5udW1iZXJSZXBlYXRdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlBvc19BcnJheVt0aGlzLnJlcGVhdF0gPSB0ZW1wTnVtYmVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGluZm8ubW92ZU51bWJlciA+IDApe1xyXG4gICAgICAgICAgICAgICAgLy8wIDEgMiAzIDQgNSA2IDcgOCA5XHJcbiAgICAgICAgICAgICAgICAvL+WPr+enu+WKqOWMuuWIhlxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IGNjLnYyKDAsMCk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgej0wOyB6PGluZm8ubnVtYmVyOyB6Kyspe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUFycmF5W3pdID0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZvcihsZXQgcD0wOyBwPGluZm8ubW92ZU51bWJlcjsgcCsrKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVtpbmZvLm51bWJlci0xLXBdID0gMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCB0aW1lT3V0ID0gMDtcclxuICAgICAgICAgICAgICAgIC8v5omT5Lmx5Y+v56e75Yqo6aG65bqPXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheS5zb3J0KCgpID0+IE1hdGgucmFuZG9tKCkgLSAwLjUpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlQXJyYXlbMF0gPT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCByPWluZm8ubnVtYmVyLTE7IHI+PTA7IHItLSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZUFycmF5W3JdID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQXJyYXlbcl0gPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQXJyYXlbMF0gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v6K6+572u6YeN5Y+gXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJlcGVhdCA9IC0xO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5udW1iZXJSZXBlYXQgPSAtMTtcclxuXHJcbiAgICAgICAgICAgICAgICAvL+WwhumHjeWPoOeahOiuvue9ruS4uuS4jeWPr+enu+WKqCAgMSAxIDEgMSAwIDAgMSAwIDAgMCAgIC8gMiA3XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGsgPTA7IGs8dGhpcy5tb3ZlQXJyYXkubGVuZ3RoO2srKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5tb3ZlQXJyYXlba109PTEgJiYgKGsgPT0gdGhpcy5yZXBlYXQgfHwgayA9PSB0aGlzLm51bWJlclJlcGVhdCkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IG0gPSB0aGlzLm1vdmVBcnJheS5sZW5ndGgtMTsgbSA+PSAwOyBtLS0pe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobSAhPSBrICYmIHRoaXMubW92ZUFycmF5W21dID09IDAgJiYgbSE9IHRoaXMucmVwZWF0ICYmIG0hPSB0aGlzLm51bWJlclJlcGVhdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQXJyYXlbbV0gPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUFycmF5W2tdID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICA9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0wOyBpPHRoaXMuUG9zX0FycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubW92ZUFycmF5IFtpXSA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZU91dCArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHRoaXMuZ2V0UG9zMih0cnVlLGkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qb3NfQXJyYXlbaV0gPSBwb3M7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRpbWVPdXQqMzAwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC8v56e75Yqo5ZCO5pWw5o2uIOmHjeaWsOWIt+S4gOmBjei1i+WAvFxyXG4gICAgdXBkYXRlQXJyYXkoKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLm5vd19BcnJheS5sZW5ndGgtMTtpKyspe1xyXG4gICAgICAgICAgICB0aGlzLm5vd19BcnJheVtpXS54ID0gdGhpcy5Qb3NfQXJyYXlbaV0ueDtcclxuICAgICAgICAgICAgdGhpcy5ub3dfQXJyYXlbaV0ueSA9IHRoaXMuUG9zX0FycmF5W2ldLnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/lpKrpmLPliJ3lp4vljJblkI7np7vliqjmlrnms5VcclxuICAgICBtb3ZlQWN0aW9uKCl7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBcnJheSgpO1xyXG4gICAgICAgIGxldCBtb3ZlQXJyYXkgPSB0aGlzLm1vdmVBcnJheTtcclxuICAgICAgICBsZXQgaW5mbyA9IEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV07XHJcbiAgICAgICAgLy/mlLnlj5jnp7vliqjpgJ/luqZcclxuICAgICAgICB2YXIgc3BlZWQgPSA3O1xyXG4gICAgICAgIGlmKGluZm8ubW92ZVNwZWVkID49IDIpe1xyXG4gICAgICAgICAgICBzcGVlZCA9IDcgLSBpbmZvLm1vdmVTcGVlZC8yO1xyXG4gICAgICAgIH0gIFxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBpZihpbmZvLm1vdmVOdW1iZXIgPiAwKXtcclxuICAgICAgICAgICAgLy8wIDEgMiAzIDQgNSA2IDcgOCA5XHJcbiAgICAgICAgICAgIC8v5Y+v56e75Yqo5Yy65YiGXHJcbiAgICAgICAgICAgIGxldCBwb3MgPSBjYy52MigwLDApO1xyXG5cclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMucmVwZWF0ID0gLTE7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubnVtYmVyUmVwZWF0ID0gLTE7XHJcblxyXG4gICAgICAgICAgICAgICAgLy/lsIbph43lj6DnmoTorr7nva7kuLrkuI3lj6/np7vliqggIDEgMSAxIDEgMCAwIDEgMCAwIDAgICAvIDIgN1xyXG4gICAgICAgICAgICBmb3IobGV0IGsgPTA7IGs8dGhpcy5tb3ZlQXJyYXkubGVuZ3RoO2srKyl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1vdmVBcnJheVtrXT09MSAmJiAoayA9PSB0aGlzLnJlcGVhdCB8fCBrID09IHRoaXMubnVtYmVyUmVwZWF0KSl7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBtID0gdGhpcy5tb3ZlQXJyYXkubGVuZ3RoLTE7IG0gPj0gMDsgbS0tKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYobSAhPSBrICYmIHRoaXMubW92ZUFycmF5W21dID09IDAgJiYgbSE9IHRoaXMucmVwZWF0ICYmIG0hPSB0aGlzLm51bWJlclJlcGVhdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVttXSA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBcnJheVtrXSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICA9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgbGFzdE51bWJlciA9IDA7XHJcbiAgICAgICAgICAgIC8v6ZSB5a6a5pyA5ZCO5LiA5Liq5Y+v56e75Yqo55qEXHJcbiAgICAgICAgICAgIGZvcihsZXQgaiA9MDsgajxtb3ZlQXJyYXkubGVuZ3RoO2orKyl7XHJcbiAgICAgICAgICAgICAgICBpZihtb3ZlQXJyYXlbal09PTEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGxhc3ROdW1iZXIgPSBqO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBmb3IobGV0IGkgPTA7IGk8dGhpcy5iYWxsX0FycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYobW92ZUFycmF5W2ldID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGkgIT0gbGFzdE51bWJlcil7ICAgIC8v5aaC5p6c5LiN5piv5pyA5ZCO5LiA5Liq56e75Yqo55qEXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0aW1lID0gc3BlZWQqdGhpcy5jYWxjdWxhdGVEaXN0YW5jZTModGhpcy5iYWxsX0FycmF5W2ldLngsdGhpcy5iYWxsX0FycmF5W2ldLnksdGhpcy5Qb3NfQXJyYXlbaV0ueCx0aGlzLlBvc19BcnJheVtpXS55KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2ldLmdldENvbXBvbmVudChcIlN1blwiKS5tb3ZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MudHdlZW4odGhpcy5iYWxsX0FycmF5W2ldKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAudG8odGltZSx7cG9zaXRpb246dGhpcy5Qb3NfQXJyYXlbaV19KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJTdW5cIikubW92ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy/lpoLmnpzmmK/mnIDlkI7kuIDkuKpcclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IHNwZWVkKnRoaXMuY2FsY3VsYXRlRGlzdGFuY2UzKHRoaXMuYmFsbF9BcnJheVtpXS54LHRoaXMuYmFsbF9BcnJheVtpXS55LHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFsbF9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJTdW5cIikubW92ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuYmFsbF9BcnJheVtpXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvKHRpbWUse3Bvc2l0aW9uOnRoaXMuUG9zX0FycmF5W2ldfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWxsX0FycmF5W2ldLmdldENvbXBvbmVudChcIlN1blwiKS5tb3ZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYmVnaW5HYW1lKCl7XHJcbiAgICAgICAgdGhpcy5iZWdpbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSB0aGlzLmdldFRpbWUoKTtcclxuICAgICAgICB0aGlzLnRpbWVTdGFydCA9IHRoaXMuZ2V0VGltZSgpO1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJzaG93QnRuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmFuZG9tQXJyYXkobGFzdE51bWJlcil7XHJcbiAgICAgICAgbGV0IG51bSA9ICBwYXJzZUludChNYXRoLnJhbmRvbSgpKjggLSA0ICsgXCJcIik7XHJcbiAgICAgICAgbGV0IGpnID0gbnVtICsgbGFzdE51bWJlcjtcclxuICAgICAgICBpZihudW0gPiAxIHx8IG51bSA8LTEpe1xyXG4gICAgICAgICAgICBpZiggbnVtID09IDAgfHwgKCBqZzwwIHx8IGpnID49IHRoaXMuUG9zX0FycmF5Lmxlbmd0aCkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSB0aGlzLmdldFJhbmRvbUFycmF5KGxhc3ROdW1iZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGpnID0gdGhpcy5nZXRSYW5kb21BcnJheShsYXN0TnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICBcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rlpKrpmLPmiYDpnIDmlbDmja5cclxuICAgIGNyZWF0ZVN1bigpe1xyXG4gICAgICAgIGxldCBsZXZlbERhdGEgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdO1xyXG4gICAgICAgIGxldCB0aWVtT3V0ID0gMDtcclxuICAgICAgICBmb3IobGV0IGw9MDsgbDxsZXZlbERhdGEubnVtYmVyO2wrKyl7XHJcbiAgICAgICAgICAgIHRpZW1PdXQgKz0gMTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm92ZXIgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3MgPSB0aGlzLmdldFBvcyhmYWxzZSxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlBvc19BcnJheS5wdXNoKHBvcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5Qb3NfQXJyYXkubGVuZ3RoID09IGxldmVsRGF0YS5udW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQb3MoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9LCB0aWVtT3V0KjEwMCk7XHJcbiBcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gMCAwIDAgMCAwIDAgICAgIDAgICAgMCAwIDAgMFxyXG5cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVQb3MoKXtcclxuICAgICAgICBsZXQgZGF0YSA9IHt4OnRoaXMuYmFsbC54LHk6dGhpcy5iYWxsLnksdGltZTowLHRpbWVDb3VudDowLGNvbG9yOjAsc3BlZWQ6MCxyZXBlYXQ6ZmFsc2V9O1xyXG4gICAgICAgIGxldCBsZXZlbERhdGEgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdO1xyXG4gICAgICAgIC8v6aKc6Imy5Yy65YiGXHJcbiAgICAgICAgbGV0IGNvbG9yQXJyYXkgPSBbMCwxXTtcclxuICAgICAgICBmb3IobGV0IGo9MDsgajxsZXZlbERhdGEubnVtYmVyLTI7aisrKXtcclxuICAgICAgICAgICAgbGV0IGNvbG9yVGVtcCA9IHBhcnNlSW50KE1hdGgucmFuZG9tKCkqMytcIlwiKTtcclxuICAgICAgICAgICAgaWYobGV2ZWxEYXRhLm51bWJlciA8IDYgJiYgY29sb3JUZW1wID09IDIpIGNvbG9yVGVtcCA9IDA7XHJcbiAgICAgICAgICAgIGNvbG9yQXJyYXkucHVzaChjb2xvclRlbXApO1xyXG4gICAgICAgICAgICBjb2xvckFycmF5LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbG9yQXJyYXkuc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KTtcclxuICAgICAgICBpZihsZXZlbERhdGEubnVtYmVyID09IDQpIGNvbG9yQXJyYXkgPSBbMCwwLDAsMF07XHJcbiAgICAgICAgdGhpcy5jb2xvcl9BcnJheSA9IGNvbG9yQXJyYXk7XHJcblxyXG5cclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxsZXZlbERhdGEubnVtYmVyO2krKyl7XHJcbiAgICAgICAgICAgIGxldCB0aW1lQ291bnQgPSB0aGlzLnRpbWVDb3VudCArICgwLjYtdGhpcy5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLmJhbGwueCx0aGlzLmJhbGwueSx0aGlzLlBvc19BcnJheVtpXS54LHRoaXMuUG9zX0FycmF5W2ldLnkpKTtcclxuICAgICAgICAgICAgbGV0IHRpbWUgPSB0aGlzLmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55LHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSkrdGltZUNvdW50O1xyXG4gICAgICAgICAgICBkYXRhID0ge3g6dGhpcy5Qb3NfQXJyYXlbaV0ueCx5OnRoaXMuUG9zX0FycmF5W2ldLnksdGltZTp0aW1lLHRpbWVDb3VudDp0aW1lQ291bnQsY29sb3I6Y29sb3JBcnJheVtpXSxzcGVlZDpsZXZlbERhdGEubW92ZVNwZWVkLHJlcGVhdDpmYWxzZX07XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmVwZWF0ID09IGkpe1xyXG4gICAgICAgICAgICAgICAgZGF0YS5yZXBlYXQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYodGhpcy5udW1iZXJSZXBlYXQgPT0gaSl7XHJcbiAgICAgICAgICAgICAgICBkYXRhLnJlcGVhdCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ub3dfQXJyYXkucHVzaChkYXRhKTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJ1bkdhbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQb3ModHlwZSxudW0pe1xyXG4gICAgICAgIGxldCBwb3NYID0gTWF0aC5yYW5kb20oKSo2MjAgLSAzMTA7XHJcbiAgICAgICAgbGV0IHBvc1kgPSBNYXRoLnJhbmRvbSgpKih0aGlzLmZpdFRvcC10aGlzLmZpdEJvdCkgKyB0aGlzLmZpdEJvdDtcclxuXHJcbiAgICAgICAgbGV0IHBvaW50ID0gY2MudjIocG9zWCxwb3NZKTtcclxuICAgICAgIFxyXG4gICAgICAgIGlmKHRoaXMuUG9zX0FycmF5Lmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLlBvc19BcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCBkaXN0YW5jZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZihpID09IG51bSkgcGQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKHBvc1gscG9zWSx0aGlzLlBvc19BcnJheVtpXS54LHRoaXMuUG9zX0FycmF5W2ldLnkscGQpXHJcbiAgICAgICAgICAgICAgICBpZihkaXN0YW5jZSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgaSA9IDEwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ID0gdGhpcy5nZXRQb3ModHlwZSxudW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPT0gdHJ1ZSAmJiBpID09ICh0aGlzLlBvc19BcnJheS5sZW5ndGgtMSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb2ludDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQb3MyKHR5cGUsbnVtKXtcclxuXHJcbiAgICAgICAgbGV0IHBvc1ggPSBNYXRoLnJhbmRvbSgpKjYyMCAtIDMxMDtcclxuICAgICAgICBsZXQgcG9zWSA9IE1hdGgucmFuZG9tKCkqKHRoaXMuZml0VG9wLXRoaXMuZml0Qm90KSArIHRoaXMuZml0Qm90O1xyXG5cclxuICAgICAgICBsZXQgcG9pbnQgPSBjYy52Mihwb3NYLHBvc1kpO1xyXG4gICAgICAgXHJcbiBcclxuICAgICAgICBpZih0aGlzLlBvc19BcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5Qb3NfQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlzdGFuY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBwZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYoaSA9PSBudW0pIHBkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGRpc3RhbmNlID0gdGhpcy5nZXREaXN0YW5jZTIocG9zWCxwb3NZLHRoaXMuUG9zX0FycmF5W2ldLngsdGhpcy5Qb3NfQXJyYXlbaV0ueSxwZClcclxuICAgICAgICAgICAgICAgIGlmKGRpc3RhbmNlID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICBpID0gMTAwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnQgPSB0aGlzLmdldFBvczIodHlwZSxudW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPT0gdHJ1ZSAmJiBpID09ICh0aGlzLlBvc19BcnJheS5sZW5ndGgtMSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb2ludDtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXN0YW5jZSh4MSwgeTEsIHgyLCB5MixudW0pIHtcclxuICAgICAgICB2YXIgamcgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBkeCA9IHgyIC0geDE7XHJcbiAgICAgICAgY29uc3QgZHkgPSB5MiAtIHkxO1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBpZihkaXN0YW5jZSA+IDE2MCl7XHJcbiAgICAgICAgICAgIGlmKG51bSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgIGlmKGRpc3RhbmNlIDwgR2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk9bdGhpcy5sZXZlbC0xXS5tYXhNb3ZlKXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgZWxzZSBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBpZihkaXN0YW5jZSA8IEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPW3RoaXMubGV2ZWwtMV0ubWF4TW92ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgIGVsc2UgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGlzdGFuY2UyKHgxLCB5MSwgeDIsIHkyLG51bSkge1xyXG4gICAgICAgIHZhciBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gMTYwKXtcclxuICAgICAgICAgICAgaWYobnVtID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgaWYoZGlzdGFuY2UgPCBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GT1t0aGlzLmxldmVsLTFdLm1heERpc3RhbmNlKSBqZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGpnID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNyZWF0ZUJhbGwobnVtYmVyLGNvbG9yLHNwZWVkLHJlcGVhdCl7XHJcbiAgICAgICAgbGV0IGJhbGwgPSBudWxsO1xyXG4gICAgICAgIGlmKGNvbG9yID09IDApYmFsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMucWl1MSk7XHJcbiAgICAgICAgZWxzZSBpZihjb2xvciA9PSAxKWJhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLnFpdTIpO1xyXG4gICAgICAgIGVsc2UgaWYoY29sb3IgPT0gMiliYWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5xaXUzKTtcclxuICAgICAgICBiYWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlN1blwiKTtcclxuICAgICAgICBiYWxsLnpJbmRleCA9IHRoaXMubm93X0FycmF5Lmxlbmd0aCAtIG51bWJlcjtcclxuICAgICAgICBiYWxsLnNldFBvc2l0aW9uKHRoaXMuYmFsbC54LHRoaXMuYmFsbC55KTtcclxuICAgICAgICBiYWxsLmdldENvbXBvbmVudChcIlN1blwiKS5pbml0KG51bWJlcixjb2xvcixzcGVlZCxyZXBlYXQpO1xyXG4gICAgICAgIHRoaXMuYmFsbF9BcnJheS5wdXNoKGJhbGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlc3Ryb3lMaW5lKCkge1xyXG4gICAgICAgIGZvcihsZXQgaSA9MDsgaTwgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKS5jaGlsZHJlbi5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGluZVwiKS5jaGlsZHJlbltpXSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpLmNoaWxkcmVuW2ldLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikuY2hpbGRyZW5baV0gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxpbmVcIikucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVMaW5lKHN0YXJ0LGVuZCx0aW1lKXtcclxuICAgICAgICBsZXQgbGluZSA9IGNjLmluc3RhbnRpYXRlKHRoaXMubGluZVByZWZhYik7XHJcbiAgICAgICAgbGluZS5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMaW5lXCIpO1xyXG4gICAgICAgIGxpbmUuc2V0UG9zaXRpb24oc3RhcnQueCxzdGFydC55KTtcclxuICAgIFxyXG4gICAgICAgIGNvbnN0IGR4ID0gZW5kLnggLSBzdGFydC54O1xyXG4gICAgICAgIGNvbnN0IGR5ID0gZW5kLnkgLSBzdGFydC55O1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBsaW5lLmhlaWdodCA9IGRpc3RhbmNlO1xyXG4gICAgICAgIGxpbmUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuZmlsbFJhbmdlID0gMDtcclxuICAgICAgICBsaW5lLmFuZ2xlID0gLXRoaXMuY2FsY3VsYXRlQW5nbGUoc3RhcnQueCxzdGFydC55LGVuZC54LGVuZC55KTtcclxuICAgICAgICBjYy50d2VlbihsaW5lLmdldENvbXBvbmVudChjYy5TcHJpdGUpKVxyXG4gICAgICAgIC50byh0aW1lLHtmaWxsUmFuZ2U6MX0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FsY3VsYXRlQW5nbGUoeDEsIHkxLCB4MiwgeTIpIHtcclxuICAgICAgICB2YXIgYW5nbGUgPSBNYXRoLmF0YW4yKHkyLXkxLHgyLXgxKSoxODAgLyBNYXRoLlBJIC0gOTA7XHJcbiAgICAgICAgcmV0dXJuIC1hbmdsZTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxjdWxhdGVEaXN0YW5jZSh4MSwgeTEsIHgyLCB5Mikge1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gODAwKSBkaXN0YW5jZSA9IDgwMDtcclxuICAgICAgICBjb25zdCB0aW1lID0gZGlzdGFuY2UvODAwICogMC42O1xyXG4gICAgICAgIHJldHVybiB0aW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZURpc3RhbmNlMih4MSwgeTEsIHgyLCB5Mikge1xyXG4gICAgICAgIGNvbnN0IGR4ID0geDIgLSB4MTtcclxuICAgICAgICBjb25zdCBkeSA9IHkyIC0geTE7XHJcbiAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpO1xyXG4gICAgICAgIGlmKGRpc3RhbmNlID4gMTIwMCkgZGlzdGFuY2UgPSAxMjAwO1xyXG4gICAgICAgIGNvbnN0IHRpbWUgPSBkaXN0YW5jZS8xMjAwICogMTtcclxuICAgICAgICByZXR1cm4gdGltZTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxjdWxhdGVEaXN0YW5jZTMoeDEsIHkxLCB4MiwgeTIpIHtcclxuICAgICAgICBjb25zdCBkeCA9IHgyIC0geDE7XHJcbiAgICAgICAgY29uc3QgZHkgPSB5MiAtIHkxO1xyXG4gICAgICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTtcclxuICAgICAgICBpZihkaXN0YW5jZSA+IDEyMDApIGRpc3RhbmNlID0gMTIwMDtcclxuICAgICAgICBjb25zdCB0aW1lID0gZGlzdGFuY2UvMTIwMCAqIDEuNTtcclxuICAgICAgICByZXR1cm4gdGltZTtcclxuICAgIH1cclxuXHJcbiAgICAvL+iDjOaZr+enu+WKqFxyXG4gICAgYmdNb3ZlKHR5cGUpe1xyXG4gICAgICAgIGxldCByYW5kb20gPSBNYXRoLnJhbmRvbSgpKjMwMCArIDMwMDtcclxuICAgICAgICBsZXQgcG9zWCA9IE1hdGgucmFuZG9tKCkqNjAwIC0gMzAwO1xyXG4gICAgXHJcbiAgICAgICAgbGV0IHkxID0gdGhpcy5iZzEueSAtIHJhbmRvbSp0eXBlO1xyXG4gICAgICAgIC8vIGxldCB5MiA9IHRoaXMuYmcyLnkgLSByYW5kb20qdHlwZTtcclxuICAgICAgICBsZXQgdGltZTEgPSAwLjcqKHJhbmRvbS80MDApO1xyXG5cclxuICAgICAgICBjYy50d2Vlbih0aGlzLmJhbGwpXHJcbiAgICAgICAgLnRvKDAuMyx7c2NhbGU6MS4zfSlcclxuICAgICAgICAudG8odGltZTEse3g6cG9zWH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMuYmcxKVxyXG4gICAgICAgIC5kZWxheSgwLjMpXHJcbiAgICAgICAgLnRvKHRpbWUxLHt5OnkxfSlcclxuICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgLy8gY2MudHdlZW4odGhpcy5iZzIpXHJcbiAgICAgICAgLy8gLmRlbGF5KDAuMylcclxuICAgICAgICAvLyAudG8odGltZTEse3k6eTJ9KVxyXG4gICAgICAgIC8vIC5zdGFydCgpO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5vdmVyID09IGZhbHNlICYmIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbSA9PSAwKXtcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgaWYodGhpcy5vdmVyID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgXHJcbiAgICAgICAgfSwgdGltZTEqMTUwMCk7XHJcbiAgICB9XHJcbiAgICAvL+aXtumXtOagvOW8j+i9rOaNolxyXG4gICAgZ2V0VGltZU1hcmdpbihzZWNvbmQ6bnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgbGV0IG0gPSBcIlwiICsgbWluOyAgXHJcbiAgICAgICAgaWYobWluIDwgMTApIG0gPSBcIjBcIittaW47XHJcbiAgICAgICAgbGV0IGFmdGVyTWluID0gdG90YWwgLSBob3VyICogNjAgKiA2MCAtIG1pbiAqIDYwOy8v5Y+W5b6X566X5Ye65YiG5ZCO5Ymp5L2Z55qE56eS5pWwXHJcbiAgICAgICAgbGV0IG1pYW8gPSBhZnRlck1pbiArIFwiXCI7XHJcbiAgICAgICAgaWYoYWZ0ZXJNaW4gPCAxMCkgbWlhbyA9IFwiMFwiICsgYWZ0ZXJNaW47XHJcbiAgICAgICAgcmV0dXJuIG0gKyAnOicgKyBtaWFvXHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICAvL+WmguaenOaYr+WAkuiuoeaXtiDosIPnlKjmraTmlrnms5VcclxuICAgIHVwZGF0ZUNvdW50RG93blRpbWUgKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvdW50VGltZSA+IDAgJiYgdGhpcy5wYXVzZSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50VGltZSAtPSAxO1xyXG4gICAgICAgICAgICB0aGlzLnRpbWUuc3RyaW5nID0gdGhpcy5nZXRUaW1lTWFyZ2luKHRoaXMuY291bnRUaW1lKTtcclxuICAgICAgICAgICAgaWYodGhpcy5jb3VudFRpbWUgPCA1KXtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMudGltZS5ub2RlKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMjUse3NjYWxlOjEuNSxjb2xvcjpjYy5jb2xvcigyNTUsMCwwKX0pXHJcbiAgICAgICAgICAgICAgICAudG8oMC4yNSx7c2NhbGU6MSxjb2xvcjpjYy5jb2xvcigyNTUsMjU1LDI1NSl9KVxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KClcclxuICAgICAgICAgICAgICAgIGxldCBvdmVyID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiT3ZlclwiKTtcclxuICAgICAgICAgICAgICAgIGNjLnR3ZWVuKG92ZXIpXHJcbiAgICAgICAgICAgICAgICAudG8oMC4yLHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgICAgICAgICAuZGVsYXkoMC4xKVxyXG4gICAgICAgICAgICAgICAgLnRvKDAuMix7b3BhY2l0eTowfSlcclxuICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY291bnRUaW1lIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iZWdpbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnVwZGF0ZUNvdW50RG93blRpbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb3NzKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZSA9IDA7XHJcbiAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSx0aGlzLmNsaWNrQ291bnQpO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jbGlja0NvdW50ID4gMCkgdGltZSA9IHBhcnNlSW50KEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZS90aGlzLmNsaWNrQ291bnQgKyBcIlwiKTtcclxuICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSA9IHBhcnNlSW50KHRpbWUvMTAwICsgXCJcIik7XHJcbiAgICAgICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUgPSBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUgLzEwO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSx0aW1lKTtcclxuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICAgICAgaWYodGltZSA+IDEwMDAwKSB0aW1lID0gKE1hdGgucmFuZG9tKCkqMTArNSkqMTAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRSYW5rKHRpbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldERhdGEoKXtcclxuICAgICAgICBsZXQgZGF0YSA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HQU1FX0RBVEE7XHJcbiAgICAgICAgbGV0IG1hdGNoSWQgPSB0aGlzLmdldE1hdGNoSWQoKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhtYXRjaElkKTtcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwibWF0Y2hJZFwiOm1hdGNoSWQsXHJcbiAgICAgICAgICAgIFwiZGF0YVwiOiBkYXRhXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOaVsOaNrjpcIilcclxuICAgICAgICBIdHRwVXRpbC51cGxvYWRVc2VyTG9nRGF0YShwb3N0RGF0YSxmdW5jdGlvbigpe30pXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcblxyXG4gICAgICAgIGlmKG1hdGNoSWQgPT0gXCJ1bmRpZmVuZFwiIHx8IG1hdGNoSWQ9PW51bGwpe1xyXG4gICAgICAgICAgICBtYXRjaElkID0gIHRoaXMuc2V0TWF0Y2hJZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBpZih0aGlzLmNvbnRhaW5zTmFuYW5hKG1hdGNoSWQpID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgbWF0Y2hJZCA9ICB0aGlzLnNldE1hdGNoSWQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgbGV0IGNoYXIgPSBwYXJzZUludChtYXRjaElkWzEwXSk7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLnJvdW5kID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYXIgKz0gMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG1hdGNoSWQgID0gbWF0Y2hJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1hdGNoSWQgPSBtYXRjaElkO1xyXG4gICAgICAgICAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLG1hdGNoSWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbWF0Y2hJZDtcclxuICAgIH1cclxuXHJcbiAgICBjb250YWluc05hbmFuYShzdHIpIHtcclxuICAgICAgICByZXR1cm4gL25hL2kudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldE1hdGNoSWQgKCl7XHJcbiAgICAgICAgLy8g5a6a5LmJ5YyF5ZCr5Y+v55So5a2X56ym55qE5a2X56ym6ZuGXHJcbiAgICAgICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq5pWw57uE5Lul5L+d5a2Y6ZqP5py65a2X56ymXHJcbiAgICAgICAgY29uc3QgdXVpZEFycmF5ID0gW107XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8g5b6q546vMTDmrKEg55Sf5oiQMTDkvY3nmoRVVUlEXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDnlJ/miJDpmo/mnLrntKLlvJXvvIzojIPlm7TmmK/lrZfnrKbpm4bnmoTplb/luqZcclxuICAgICAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIC8vIOS7juWtl+espumbhuS4reiOt+WPlumaj+acuuWtl+esplxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21DaGFyID0gY2hhcmFjdGVycy5jaGFyQXQocmFuZG9tSW5kZXgpO1xyXG4gICAgICAgICAgICAvLyDlsIblrZfnrKbmt7vliqDliLDmlbDnu4TkuK1cclxuICAgICAgICAgICAgdXVpZEFycmF5LnB1c2gocmFuZG9tQ2hhcik7XHJcbiAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAgIGxldCBkYXRhID0gIHV1aWRBcnJheS5qb2luKCcnKSArIDEgKyBcIlwiO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoTnVtYmVyXCIsMSk7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLGRhdGEpO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1hdGNoSWQgPSBkYXRhO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFJhbmsodGltZSl7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcInR5cGVcIjoxLFxyXG4gICAgICAgICAgICBcInJlYWN0aW9uVGltZVwiOiB0aW1lLFxyXG4gICAgICAgICAgICBcInRvdGFsU3VuQ291bnRcIjogR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udG90YWwsXHJcbiAgICAgICAgICAgIFwic3VjY2Vzc1wiOiBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5zdWNjZXNzXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocG9zdERhdGEpO1xyXG4gICAgICAgIEh0dHBVdGlsLnJhbmtEYXRhKDEsZnVuY3Rpb24oKXt9LHBvc3REYXRhKTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lT3ZlclwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVPdmVyXCIpLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVPdmVyXCIpKVxyXG4gICAgICAgIC50bygwLjQse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAuZGVsYXkoMilcclxuICAgICAgICAudG8oMC40LHtvcGFjaXR5OjUwfSlcclxuICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiT3ZlclNjZW5lXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KClcclxuICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgb3V0UHV0KCl7XHJcblxyXG4gICAgICAgIGxldCBkYXRhID0gR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEE7XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdBTUVfREFUQSA9IFtdO1xyXG5cclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR0FNRV9EQVRBLnB1c2goR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEpO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5DTElDS19pbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd051bWJlcigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2hvdyA9PSBmYWxzZSkgdGhpcy5zaG93ID0gdHJ1ZTtcclxuICAgICAgICBlbHNlIGlmKHRoaXMuc2hvdyA9PSB0cnVlKSB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmJhbGxfQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICB0aGlzLmJhbGxfQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiU3VuXCIpLnNob3dOdW1iZXIodGhpcy5zaG93KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG9uRW5hYmxlICgpIHtcclxuICAgICAgICBOb3RpZmljYXRpb24ub24oXCJjbGlja1N1blwiLCB0aGlzLmNsaWNrU3VuLCB0aGlzKTtcclxuICAgICAgICAvLyBOb3RpZmljYXRpb24ub24oXCJIYW1tZXJQbGF5XCIsIHRoaXMuSGFtbWVyUGxheSwgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EaXNhYmxlICgpIHtcclxuICAgICAgICAvLyBOb3RpZmljYXRpb24ub2ZmKFwicmlnaHRBbnN3ZXJzXCIsIHRoaXMucmlnaHRBbnN3ZXJzKTtcclxuICAgICAgICBOb3RpZmljYXRpb24ub2ZmKFwiY2xpY2tTdW5cIiwgdGhpcy5jbGlja1N1bik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICBcclxuICAgIH1cclxufVxyXG4iXX0= \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/GameOver.js b/temp/quick-scripts/dst/assets/Script/GameOver.js index b14c297..11347a5 100644 --- a/temp/quick-scripts/dst/assets/Script/GameOver.js +++ b/temp/quick-scripts/dst/assets/Script/GameOver.js @@ -62,6 +62,9 @@ var NewClass = /** @class */ (function (_super) { // onLoad () {} NewClass.prototype.start = function () { this.count.string = GameData_1.default._instance.GM_INFO.total; + if (GameData_1.default._instance.GM_INFO.mean_Time > 10) { + GameData_1.default._instance.GM_INFO.mean_Time = (parseInt(Math.random() * 10 + "") + 5) / 10; + } this.time.string = GameData_1.default._instance.GM_INFO.mean_Time + "s"; this.listData = []; this.selfData = null; @@ -210,4 +213,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lT3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRix1Q0FBa0M7QUFFbEMsZ0RBQTBDO0FBR3BDLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBdUpDO1FBcEpHLFdBQUssR0FBYSxJQUFJLENBQUM7UUFHdkIsVUFBSSxHQUFhLElBQUksQ0FBQztRQUd0QixjQUFRLEdBQVksSUFBSSxDQUFDO1FBRXpCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFFcEIsU0FBRyxHQUFZLElBQUksQ0FBQztRQUVwQixXQUFLLEdBQVksSUFBSSxDQUFDO1FBRXRCLFVBQUksR0FBWSxJQUFJLENBQUM7UUFFckIsVUFBSSxHQUFZLElBQUksQ0FBQzs7UUFtSXJCLGlCQUFpQjtJQUNyQixDQUFDO0lBaElHLHdCQUF3QjtJQUV4QixlQUFlO0lBRWYsd0JBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENB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MENBQ0c7SUFuQkosUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXVKNUI7SUFBRCxlQUFDO0NBdkpELEFBdUpDLENBdkpxQyxFQUFFLENBQUMsU0FBUyxHQXVKakQ7a0JBdkpvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVEYXRhIGZyb20gXCIuL0dhbWVEYXRhXCI7XHJcbmltcG9ydCBMaXN0IGZyb20gXCIuL0xpc3RWaWV3L0xpc3RcIjtcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuaW1wb3J0IFJxIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGNvdW50OiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgdGltZTogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBvbmU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0d286IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0aHJlZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZvdXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmaXZlOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBsaXN0RGF0YTogYW55O1xyXG4gICAgc2VsZkRhdGE6IGFueTtcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLmNvdW50LnN0cmluZyA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnRvdGFsO1xyXG4gICAgICAgIHRoaXMudGltZS5zdHJpbmcgPSBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5tZWFuX1RpbWUgKyBcInNcIjtcclxuICAgICAgICB0aGlzLmxpc3REYXRhID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxmRGF0YSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5vbmUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50d28uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aHJlZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZvdXIuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5maXZlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIC8vIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuXHJcbiAgICBzdWNjZXNzKGRhdGEpe1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgYmFjaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIlJhbmtTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBhZ2Fpbigpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRSYW5rKCl7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcInBhZ2VcIjoxLFxyXG4gICAgICAgICAgICBcInBhZ2VTaXplXCI6MTAwXHJcbiAgICAgICAgfTsgXHJcbiAgICAgICAgSHR0cFV0aWwucmFua0RhdGEoMix0aGlzLmdldFJhbmtEYXRhLmJpbmQodGhpcykscG9zdERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICB0aGlzLmxpc3REYXRhID0gZGF0YS5kYXRhLmxpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEgPSBkYXRhLmRhdGEuaW5mbztcclxuICAgICAgICAgICAgbGV0IHJhbmtEYXRhID0gW107XHJcbiAgICAgICAgICAgIGxldCBzZWxmID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuc2VsZkRhdGEubmlja05hbWUubGVuZ3RoID4gNCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGZEYXRhLm5pY2tOYW1lPSB0aGlzLnNlbGZEYXRhLm5pY2tOYW1lLnN1YnN0cmluZygwLDQpICsgXCIuLi5cIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJuYW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy5zZWxmRGF0YS5uaWNrTmFtZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInRvdGFsXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy5zZWxmRGF0YS50b3RhbFN1bkNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLnNldFBpYyh0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKSx0aGlzLnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wO2k8PXRoaXMubGlzdERhdGEubGVuZ3RoLTE7aSsrKXtcclxuICAgICAgICAgICAgICAgIHJhbmtEYXRhLnB1c2goe3Jhbms6KGkrMSksIG5hbWU6dGhpcy5saXN0RGF0YVtpXS5uaWNrTmFtZSwgdG90YWw6dGhpcy5saXN0RGF0YVtpXS50b3RhbFN1bkNvdW50LCBwaWM6dGhpcy5saXN0RGF0YVtpXS5waWN9KTtcclxuICAgICAgICAgICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnVzZXJJZCA9PSB0aGlzLmxpc3REYXRhW2ldLnVzZXJJZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPShpKzEpICsgXCJcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihpID09ICh0aGlzLmxpc3REYXRhLmxlbmd0aC0xKSAmJiBzZWxmID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IFwiOTkrXCI7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoaTw1KSB0aGlzLnNldFJhbmsoaSx0aGlzLmxpc3REYXRhW2ldKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmFuayhudW0sZGF0YSl7XHJcbiAgICAgICAgdmFyIGhpdE5vZGUgPSBudWxsO1xyXG4gICAgICAgIGlmKG51bSA9PSAwKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAxKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMudHdvO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAyKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMudGhyZWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYobnVtID09IDMpe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy5mb3VyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSA0KXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMuZml2ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoaGl0Tm9kZSl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYoZGF0YS5uaWNrTmFtZS5sZW5ndGggPiA0KXtcclxuICAgICAgICAgICAgICAgIGRhdGEubmlja05hbWU9IGRhdGEubmlja05hbWUuc3Vic3RyaW5nKDAsNCkgKyBcIi4uLlwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLnRvdGFsU3VuQ291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGljKGhpdE5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLGRhdGEucGljKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRQaWMobm9kZSxwaWMpe1xyXG4gICAgICAgIG5vZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHVybCA9IHBpYztcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgZmV0Y2godXJsKVxyXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICBcclxuICAgICAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYoZXJyTm8gPT0gXCI1MDkzXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIFgtSW5mbzonLCBlcnJvcik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUodXJsLCB7ZXh0OicuanBnJ30sKGVyciwgdGV4dHVyZTpjYy5UZXh0dXJlMkQpID0+IHtcclxuICAgICAgICAgICAgaWYodGV4dHVyZSl7XHJcbiAgICAgICAgICAgICAgICBub2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBub2RlLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsdGV4dHVyZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge31cclxufVxyXG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lT3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRix1Q0FBa0M7QUFFbEMsZ0RBQTBDO0FBR3BDLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBMEpDO1FBdkpHLFdBQUssR0FBYSxJQUFJLENBQUM7UUFHdkIsVUFBSSxHQUFhLElBQUksQ0FBQztRQUd0QixjQUFRLEdBQVksSUFBSSxDQUFDO1FBRXpCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFFcEIsU0FBRyxHQUFZLElBQUksQ0FBQztRQUVwQixXQUFLLEdBQVksSUFBSSxDQUFDO1FBRXRCLFVBQUksR0FBWSxJQUFJLENBQUM7UUFFckIsVUFBSSxHQUFZLElBQUksQ0FBQzs7UUFzSXJCLGlCQUFpQjtJQUNyQixDQUFDO0lBbklHLHdCQUF3QjtJQUV4QixlQUFlO0lBRWYsd0JBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDckQsSUFBRyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLEVBQUUsRUFBQztZQUN6QyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFBO1NBQzlFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FB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LENBQUMsSUFBSSxDQUFDO3lDQUNFO0lBRXBCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ0U7SUFFcEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUV0QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNHO0lBRXJCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFuQkosUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQTBKNUI7SUFBRCxlQUFDO0NBMUpELEFBMEpDLENBMUpxQyxFQUFFLENBQUMsU0FBUyxHQTBKakQ7a0JBMUpvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVEYXRhIGZyb20gXCIuL0dhbWVEYXRhXCI7XHJcbmltcG9ydCBMaXN0IGZyb20gXCIuL0xpc3RWaWV3L0xpc3RcIjtcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuaW1wb3J0IFJxIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGNvdW50OiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgdGltZTogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBvbmU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0d286IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0aHJlZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZvdXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmaXZlOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBsaXN0RGF0YTogYW55O1xyXG4gICAgc2VsZkRhdGE6IGFueTtcclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLmNvdW50LnN0cmluZyA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnRvdGFsO1xyXG4gICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSA+IDEwKXtcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8ubWVhbl9UaW1lID0gKHBhcnNlSW50KE1hdGgucmFuZG9tKCkqMTArXCJcIikrNSkvMTBcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50aW1lLnN0cmluZyA9IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLm1lYW5fVGltZSArIFwic1wiO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGZEYXRhID0gbnVsbDtcclxuICAgICAgICB0aGlzLm9uZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnR3by5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRocmVlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZm91ci5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZpdmUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgICAgdGhpcy5nZXRSYW5rKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG5cclxuICAgIHN1Y2Nlc3MoZGF0YSl7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBiYWNrKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiUmFua1NjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGFnYWluKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFJhbmsoKXtcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwicGFnZVwiOjEsXHJcbiAgICAgICAgICAgIFwicGFnZVNpemVcIjoxMDBcclxuICAgICAgICB9OyBcclxuICAgICAgICBIdHRwVXRpbC5yYW5rRGF0YSgyLHRoaXMuZ2V0UmFua0RhdGEuYmluZCh0aGlzKSxwb3N0RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSl7XHJcbiAgICAgICAgaWYoZGF0YSl7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGEgPSBkYXRhLmRhdGEubGlzdDtcclxuICAgICAgICAgICAgdGhpcy5zZWxmRGF0YSA9IGRhdGEuZGF0YS5pbmZvO1xyXG4gICAgICAgICAgICBsZXQgcmFua0RhdGEgPSBbXTtcclxuICAgICAgICAgICAgbGV0IHNlbGYgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYodGhpcy5zZWxmRGF0YS5uaWNrTmFtZS5sZW5ndGggPiA0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEubmlja05hbWU9IHRoaXMuc2VsZkRhdGEubmlja05hbWUuc3Vic3RyaW5nKDAsNCkgKyBcIi4uLlwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLnRvdGFsU3VuQ291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGljKHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7aTw9dGhpcy5saXN0RGF0YS5sZW5ndGgtMTtpKyspe1xyXG4gICAgICAgICAgICAgICAgcmFua0RhdGEucHVzaCh7cmFuazooaSsxKSwgbmFtZTp0aGlzLmxpc3REYXRhW2ldLm5pY2tOYW1lLCB0b3RhbDp0aGlzLmxpc3REYXRhW2ldLnRvdGFsU3VuQ291bnQsIHBpYzp0aGlzLmxpc3REYXRhW2ldLnBpY30pO1xyXG4gICAgICAgICAgICAgICAgaWYoR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkID09IHRoaXMubGlzdERhdGFbaV0udXNlcklkKXtcclxuICAgICAgICAgICAgICAgICAgICBzZWxmID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9KGkrMSkgKyBcIlwiOyBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGkgPT0gKHRoaXMubGlzdERhdGEubGVuZ3RoLTEpICYmIHNlbGYgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihpPDUpIHRoaXMuc2V0UmFuayhpLHRoaXMubGlzdERhdGFbaV0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRSYW5rKG51bSxkYXRhKXtcclxuICAgICAgICB2YXIgaGl0Tm9kZSA9IG51bGw7XHJcbiAgICAgICAgaWYobnVtID09IDApe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYobnVtID09IDEpe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy50d287XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYobnVtID09IDIpe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy50aHJlZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gMyl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLmZvdXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYobnVtID09IDQpe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy5maXZlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihoaXROb2RlKXtcclxuICAgICAgICAgICAgaGl0Tm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZihkYXRhLm5pY2tOYW1lLmxlbmd0aCA+IDQpe1xyXG4gICAgICAgICAgICAgICAgZGF0YS5uaWNrTmFtZT0gZGF0YS5uaWNrTmFtZS5zdWJzdHJpbmcoMCw0KSArIFwiLi4uXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwibmFtZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IGRhdGEubmlja05hbWU7XHJcbiAgICAgICAgICAgIGhpdE5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbFwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IGRhdGEudG90YWxTdW5Db3VudDtcclxuICAgICAgICAgICAgdGhpcy5zZXRQaWMoaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksZGF0YS5waWMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFBpYyhub2RlLHBpYyl7XHJcbiAgICAgICAgbm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBsZXQgdXJsID0gcGljO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBmZXRjaCh1cmwpXHJcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1MZW5ndGgnKTtcclxuICAgICAgICAgICAgfSlcclxuICAgIFxyXG4gICAgICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5qcGcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/Helloworld.js b/temp/quick-scripts/dst/assets/Script/Helloworld.js index 9d1c65a..275ac0a 100644 --- a/temp/quick-scripts/dst/assets/Script/Helloworld.js +++ b/temp/quick-scripts/dst/assets/Script/Helloworld.js @@ -49,6 +49,7 @@ var Helloworld = /** @class */ (function (_super) { return _this; } Helloworld.prototype.onLoad = function () { + this.Player.getChildByName("rank").active = false; this.rankList = cc.find("ScrollView", this.node).getComponent(List_1.default); this.listData = []; this.selfData = null; @@ -57,11 +58,12 @@ var Helloworld = /** @class */ (function (_super) { this.selfNode.opacity = 0; }; Helloworld.prototype.start = function () { + this.Player.active = false; this.getRank(); }; Helloworld.prototype.getRankData = function (data) { if (data) { - console.log(data); + // console.log(data); this.listData = data.data.list; this.selfData = data.data.info; var rankData = []; @@ -99,6 +101,8 @@ var Helloworld = /** @class */ (function (_super) { // this.selfNode.getChildByName("four").active = true; } this.selfNode.opacity = 255; + if (this.selfData.totalSunCount == 0) + this.selfNode.opacity = 0; } }; Helloworld.prototype.backClick = function () { @@ -107,19 +111,34 @@ var Helloworld = /** @class */ (function (_super) { Helloworld.prototype.playerAction = function () { var _this = this; //-254 377 210 453 + this.Player.getChildByName("rank").active = false; var time = 1; this.tween = cc.tween(this.Player) .to(2, { position: cc.v3(210, 453, 0) }) + .call(function () { + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }) .start(); time = (this.listData.length - this.rankNumber) / this.listData.length; if (this.listData.length >= 99) { if (this.rankNumber >= 99) { time = (Math.random() * 49 + 1) / 100; + var matchId = cc.sys.localStorage.getItem("matchNumber"); + if (matchId == null || matchId == undefined) { + time = 0; + } } } + else { + } setTimeout(function () { if (_this.tween) _this.tween.stop(); + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; }, time * 2000); }; Helloworld.prototype.getRank = function () { @@ -159,6 +178,8 @@ var Helloworld = /** @class */ (function (_super) { }; Helloworld.prototype.setPic2 = function (pic) { var _this = this; + this.Player.active = true; + this.Player.opacity = 0; this.Player.getChildByName("mask").getChildByName("icon").active = false; this.Player.getChildByName("mask").getChildByName("phone").active = false; var url = pic; @@ -177,6 +198,8 @@ var Helloworld = /** @class */ (function (_super) { var self = this; cc.assetManager.loadRemote(url, { ext: '.jpg' }, function (err, texture) { if (texture) { + _this.Player.opacity = 255; + _this.Player.getChildByName("mask").getChildByName("icon").active = false; _this.Player.getChildByName("mask").getChildByName("phone").active = true; _this.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) .spriteFrame = new cc.SpriteFrame(texture); @@ -186,7 +209,9 @@ var Helloworld = /** @class */ (function (_super) { // console.log("设置头像成功",err); } else { + _this.Player.opacity = 255; // console.log("设置头像失败",url); + _this.Player.getChildByName("mask").getChildByName("icon").active = true; console.log(err, texture); setTimeout(function () { _this.playerAction(); @@ -221,4 +246,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxIZWxsb3dvcmxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUFrQztBQUNsQyx3Q0FBbUM7QUFDbkMsZ0RBQTBDO0FBQzFDLDJDQUEyQztBQUVyQyxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUF3Qyw4QkFBWTtJQUFwRDtRQUFBLHFFQTRLQztRQXpLRyxZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGNBQVEsR0FBWSxJQUFJLENBQUM7UUFHekIsV0FBSyxHQUFjLElBQUksQ0FBQzs7SUFtSzVCLENBQUM7SUExSkcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFFLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELDBCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELGdDQUFXLEdBQVgsVUFBWSxJQUFJO1FBQ1osSUFBRyxJQUFJLEVBQUM7WUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDL0IsSUFBSSxDQUFD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QUFHLENBQUMsQ0FBQztnQkFDUiw2QkFBNkI7YUFDaEM7aUJBQ0c7Z0JBQ0EsNkJBQTZCO2dCQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxPQUFPLENBQUMsQ0FBQTtnQkFDeEIsVUFBVSxDQUFDO29CQUNQLEtBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1g7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUF2S0Q7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs4Q0FDSztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2dEQUNPO0lBR3pCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7NkNBQ0k7SUFUUCxVQUFVO1FBRDlCLE9BQU87T0FDYSxVQUFVLENBNEs5QjtJQUFELGlCQUFDO0NBNUtELEFBNEtDLENBNUt1QyxFQUFFLENBQUMsU0FBUyxHQTRLbkQ7a0JBNUtvQixVQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdhbWVEYXRhIGZyb20gXCIuL0dhbWVEYXRhXCI7XHJcbmltcG9ydCBMaXN0IGZyb20gXCIuL0xpc3RWaWV3L0xpc3RcIjtcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuLy8gaW1wb3J0IHsgYXBpU2lnbiB9IGZyb20gXCIuL2NyeXB0by9zaWduXCI7XHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGVsbG93b3JsZCBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBQbGF5ZXI6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGUpXHJcbiAgICBwaG9uZTogY2MuU3ByaXRlID0gbnVsbDtcclxuXHJcbiAgICBwcml2YXRlIHJhbmtMaXN0OiBMaXN0OyAgICAgICAgIC8v5o6S6KGM5qacXHJcbiAgICB0d2VlbjogY2MuVHdlZW48Y2MuTm9kZT47XHJcbiAgICBsaXN0RGF0YTogYW55O1xyXG4gICAgc2VsZkRhdGE6IGFueTtcclxuICAgIHJhbmtOdW1iZXI6IG51bWJlcjtcclxuICAgIHJhbmtUb3RhbDogbnVtYmVyO1xyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLnJhbmtMaXN0ID0gY2MuZmluZChcIlNjcm9sbFZpZXdcIiwgdGhpcy5ub2RlKS5nZXRDb21wb25lbnQoTGlzdCk7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZkRhdGEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmFua051bWJlciA9IDEwMDtcclxuICAgICAgICB0aGlzLnJhbmtUb3RhbD0gMTAwO1xyXG4gICAgICAgIHRoaXMuc2VsZk5vZGUub3BhY2l0eSA9IDA7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YSA9IGRhdGEuZGF0YS5saXN0O1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgICAgIGxldCByYW5rRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgc2VsZiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDtpPD10aGlzLmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgICAgICByYW5rRGF0YS5wdXNoKHtyYW5rOihpKzEpLCBuYW1lOnRoaXMubGlzdERhdGFbaV0ubmlja05hbWUsIHRvdGFsOnRoaXMubGlzdERhdGFbaV0udG90YWxTdW5Db3VudCwgcGljOnRoaXMubGlzdERhdGFbaV0ucGljfSk7XHJcbiAgICAgICAgICAgICAgICBpZihHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPT0gdGhpcy5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPShpKzEpICsgXCJcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihpID09ICh0aGlzLmxpc3REYXRhLmxlbmd0aC0xKSAmJiBzZWxmID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmtOdW1iZXIgPSBpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yYW5rTGlzdC5zZXREYXRhKHJhbmtEYXRhKTtcclxuICAgICAgICAgICAgaWYodGhpcy5zZWxmRGF0YS5uaWNrTmFtZS5sZW5ndGggPiA2KXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEubmlja05hbWU9IHRoaXMuc2VsZkRhdGEubmlja05hbWUuc3Vic3RyaW5nKDAsNikgKyBcIi4uLlwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLnRvdGFsU3VuQ291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGljKHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRQaWMyKHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgaWYodGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPT0gXCIxXCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJvbmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID09IFwiMlwiKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZih0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua0xhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9PSBcIjNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcInRocmVlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJmb3VyXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5vcGFjaXR5ID0gMjU1O1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBiYWNrQ2xpY2soKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcGxheWVyQWN0aW9uKCl7XHJcbiAgICAgICAgLy8tMjU0IDM3NyAgMjEwIDQ1M1xyXG4gICAgICAgIGxldCB0aW1lID0gMTtcclxuICAgICAgICB0aGlzLnR3ZWVuID0gY2MudHdlZW4odGhpcy5QbGF5ZXIpXHJcbiAgICAgICAgLnRvKDIse3Bvc2l0aW9uOmNjLnYzKDIxMCw0NTMsMCl9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIHRpbWUgPSAodGhpcy5saXN0RGF0YS5sZW5ndGggLSB0aGlzLnJhbmtOdW1iZXIpL3RoaXMubGlzdERhdGEubGVuZ3RoO1xyXG4gICAgICAgIGlmKHRoaXMubGlzdERhdGEubGVuZ3RoID49IDk5KXtcclxuICAgICAgICAgICAgaWYodGhpcy5yYW5rTnVtYmVyID49IDk5KXtcclxuICAgICAgICAgICAgICAgIHRpbWUgPSAoTWF0aC5yYW5kb20oKSo0OSsxKS8xMDBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLnR3ZWVuKXRoaXMudHdlZW4uc3RvcCgpO1xyXG4gICAgICAgIH0sIHRpbWUqMjAwMCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGdldFJhbmsoKXtcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwicGFnZVwiOjEsXHJcbiAgICAgICAgICAgIFwicGFnZVNpemVcIjoxMDBcclxuICAgICAgICB9OyBcclxuICAgICAgICBIdHRwVXRpbC5yYW5rRGF0YSgyLHRoaXMuZ2V0UmFua0RhdGEuYmluZCh0aGlzKSxwb3N0RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFBpYyhwaWMpe1xyXG4gICAgICAgIHRoaXMucGhvbmUubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucGhvbmUubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBsZXQgdXJsID0gcGljO1xyXG4gICAgICAgIGZldGNoKHVybClcclxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1MZW5ndGgnKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKGVyck5vID0+IHtcclxuICAgICAgICAgICAgaWYoZXJyTm8gPT0gXCI1MDkzXCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5waG9uZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUodXJsLCB7ZXh0OicuanBnJ30sKGVyciwgdGV4dHVyZTpjYy5UZXh0dXJlMkQpID0+IHtcclxuICAgICAgICAgICAgaWYodGV4dHVyZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBob25lLm5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHNlbGYucGhvbmUuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0UGljMihwaWMpe1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHVybCA9IHBpYztcclxuICAgICAgICBmZXRjaCh1cmwpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIFgtSW5mbzonLCBlcnJvcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHVybCwge2V4dDonLmpwZyd9LChlcnIsIHRleHR1cmU6Y2MuVGV4dHVyZTJEKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHRleHR1cmUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcInBob25lXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpXHJcbiAgICAgICAgICAgICAgICAuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXllckFjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6K6+572u5aS05YOP5oiQ5YqfXCIsZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLorr7nva7lpLTlg4/lpLHotKVcIix1cmwpO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyLHRleHR1cmUpXHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXllckFjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxIZWxsb3dvcmxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUFrQztBQUNsQyx3Q0FBbUM7QUFDbkMsZ0RBQTBDO0FBQzFDLDJDQUEyQztBQUVyQyxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUF3Qyw4QkFBWTtJQUFwRDtRQUFBLHFFQXNNQztRQW5NRyxZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGNBQVEsR0FBWSxJQUFJLENBQUM7UUFHekIsV0FBSyxHQUFjLElBQUksQ0FBQzs7SUE2TDVCLENBQUM7SUFwTEcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLGNBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUUsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsMEJBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELGdDQUFXLEdBQVgsVUFBWSxJQUFJO1FBQ1osSUFBRyxJQUFJ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IjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR2FtZURhdGEgZnJvbSBcIi4vR2FtZURhdGFcIjtcclxuaW1wb3J0IExpc3QgZnJvbSBcIi4vTGlzdFZpZXcvTGlzdFwiO1xyXG5pbXBvcnQgSHR0cFV0aWwgZnJvbSBcIi4vY3J5cHRvL3NlcnZlckFQSVwiO1xyXG4vLyBpbXBvcnQgeyBhcGlTaWduIH0gZnJvbSBcIi4vY3J5cHRvL3NpZ25cIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZWxsb3dvcmxkIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIFBsYXllcjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBzZWxmTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZSlcclxuICAgIHBob25lOiBjYy5TcHJpdGUgPSBudWxsO1xyXG5cclxuICAgIHByaXZhdGUgcmFua0xpc3Q6IExpc3Q7ICAgICAgICAgLy/mjpLooYzmppxcclxuICAgIHR3ZWVuOiBjYy5Ud2VlbjxjYy5Ob2RlPjtcclxuICAgIGxpc3REYXRhOiBhbnk7XHJcbiAgICBzZWxmRGF0YTogYW55O1xyXG4gICAgcmFua051bWJlcjogbnVtYmVyO1xyXG4gICAgcmFua1RvdGFsOiBudW1iZXI7XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJhbmtMaXN0ID0gY2MuZmluZChcIlNjcm9sbFZpZXdcIiwgdGhpcy5ub2RlKS5nZXRDb21wb25lbnQoTGlzdCk7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZkRhdGEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmFua051bWJlciA9IDEwMDtcclxuICAgICAgICB0aGlzLnJhbmtUb3RhbD0gMTAwO1xyXG4gICAgICAgIHRoaXMuc2VsZk5vZGUub3BhY2l0eSA9IDA7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YSA9IGRhdGEuZGF0YS5saXN0O1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgICAgIGxldCByYW5rRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgc2VsZiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDtpPD10aGlzLmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgICAgICByYW5rRGF0YS5wdXNoKHtyYW5rOihpKzEpLCBuYW1lOnRoaXMubGlzdERhdGFbaV0ubmlja05hbWUsIHRvdGFsOnRoaXMubGlzdERhdGFbaV0udG90YWxTdW5Db3VudCwgcGljOnRoaXMubGlzdERhdGFbaV0ucGljfSk7XHJcbiAgICAgICAgICAgICAgICBpZihHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPT0gdGhpcy5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPShpKzEpICsgXCJcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihpID09ICh0aGlzLmxpc3REYXRhLmxlbmd0aC0xKSAmJiBzZWxmID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmtOdW1iZXIgPSBpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yYW5rTGlzdC5zZXREYXRhKHJhbmtEYXRhKTtcclxuICAgICAgICAgICAgaWYodGhpcy5zZWxmRGF0YS5uaWNrTmFtZS5sZW5ndGggPiA2KXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEubmlja05hbWU9IHRoaXMuc2VsZkRhdGEubmlja05hbWUuc3Vic3RyaW5nKDAsNikgKyBcIi4uLlwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnNlbGZEYXRhLnRvdGFsU3VuQ291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGljKHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRQaWMyKHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgaWYodGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPT0gXCIxXCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJvbmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID09IFwiMlwiKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZih0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua0xhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9PSBcIjNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcInRocmVlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJmb3VyXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxmTm9kZS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICBpZih0aGlzLnNlbGZEYXRhLnRvdGFsU3VuQ291bnQgPT0gMCkgdGhpcy5zZWxmTm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBiYWNrQ2xpY2soKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcGxheWVyQWN0aW9uKCl7XHJcbiAgICAgICAgLy8tMjU0IDM3NyAgMjEwIDQ1M1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgbGV0IHRpbWUgPSAxO1xyXG4gICAgICAgIHRoaXMudHdlZW4gPSBjYy50d2Vlbih0aGlzLlBsYXllcilcclxuICAgICAgICAudG8oMix7cG9zaXRpb246Y2MudjMoMjEwLDQ1MywwKX0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1iZXJcIilcclxuICAgICAgICAgICAgLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gIHBhcnNlSW50KHRpbWUqMTAwICsgXCJcIikgKyBcIiVcIjtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIHRpbWUgPSAodGhpcy5saXN0RGF0YS5sZW5ndGggLSB0aGlzLnJhbmtOdW1iZXIpL3RoaXMubGlzdERhdGEubGVuZ3RoO1xyXG4gICAgICAgIGlmKHRoaXMubGlzdERhdGEubGVuZ3RoID49IDk5KXtcclxuICAgICAgICAgICAgaWYodGhpcy5yYW5rTnVtYmVyID49IDk5KXtcclxuICAgICAgICAgICAgICAgIHRpbWUgPSAoTWF0aC5yYW5kb20oKSo0OSsxKS8xMDBcclxuICAgICAgICAgICAgICAgIHZhciBtYXRjaElkID0gY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibWF0Y2hOdW1iZXJcIik7XHJcbiAgICAgICAgICAgICAgICBpZihtYXRjaElkID09IG51bGwgfHwgbWF0Y2hJZCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpbWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgXHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLnR3ZWVuKXRoaXMudHdlZW4uc3RvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwibnVtYmVyXCIpXHJcbiAgICAgICAgICAgIC5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9ICBwYXJzZUludCh0aW1lKjEwMCArIFwiXCIpICsgXCIlXCI7XHJcbiAgICAgICAgfSwgdGltZSoyMDAwKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmFuaygpe1xyXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcclxuICAgICAgICAgICAgXCJwYWdlXCI6MSxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOjEwMFxyXG4gICAgICAgIH07IFxyXG4gICAgICAgIEh0dHBVdGlsLnJhbmtEYXRhKDIsdGhpcy5nZXRSYW5rRGF0YS5iaW5kKHRoaXMpLHBvc3REYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0UGljKHBpYyl7XHJcbiAgICAgICAgdGhpcy5waG9uZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5waG9uZS5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgZmV0Y2godXJsKVxyXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBob25lLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBYLUluZm86JywgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5qcGcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMucGhvbmUubm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5waG9uZS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyLHRleHR1cmUpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRQaWMyKHBpYyl7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLlBsYXllci5vcGFjaXR5ID0gMDtcclxuICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcInBob25lXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgZmV0Y2godXJsKVxyXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIC50aGVuKGVyck5vID0+IHtcclxuICAgICAgICAgICAgaWYoZXJyTm8gPT0gXCI1MDkzXCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBYLUluZm86JywgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5qcGcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuUGxheWVyLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwicGhvbmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcInBob25lXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpXHJcbiAgICAgICAgICAgICAgICAuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXllckFjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6K6+572u5aS05YOP5oiQ5YqfXCIsZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5QbGF5ZXIub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6K6+572u5aS05YOP5aSx6LSlXCIsdXJsKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5ZXJBY3Rpb24oKTtcclxuICAgICAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0= \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/Load.js b/temp/quick-scripts/dst/assets/Script/Load.js index 54caa2e..b01614e 100644 --- a/temp/quick-scripts/dst/assets/Script/Load.js +++ b/temp/quick-scripts/dst/assets/Script/Load.js @@ -42,6 +42,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; var GameData_1 = require("./GameData"); +var Storage_1 = require("./Storage"); +// import {StorageMessage} from "./StorageMessage"; // import { apiSign } from "./crypto/sign"; var NewClass = /** @class */ (function (_super) { __extends(NewClass, _super); @@ -53,12 +55,33 @@ var NewClass = /** @class */ (function (_super) { // update (dt) {} } NewClass.prototype.start = function () { + var userId = Storage_1.StorageMessage.getStorage("user"); + if (userId == "undifend" || userId == null) { + this.setId(); + } + else { + var data = Storage_1.StorageMessage.getStorage("user"); + data = this.getId(data); + var timestamp = parseInt(new Date().getTime() / 1000 + ""); + if ((timestamp - data[2]) > 86400) { + this.setId(); + return; + } + GameData_1.default._instance.GM_INFO.userId = data[1]; + GameData_1.default._instance.GM_INFO.userId = parseInt(GameData_1.default._instance.GM_INFO.userId); + } + }; + NewClass.prototype.setId = function () { GameData_1.default._instance.GM_INFO.userId = this.getUserId(); if (GameData_1.default._instance.GM_INFO.userId == null) { - var url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=http://train.sparkus.cn/test/Sun_moves/"; + var url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=" + location.href; window.location.href = url; } else { + var timestamp = parseInt(new Date().getTime() / 1000 + ""); + var idTemp = "gameId=" + GameData_1.default._instance.GM_INFO.gameId + + "?userId= " + GameData_1.default._instance.GM_INFO.userId + "?time=" + timestamp; + Storage_1.StorageMessage.setStorage("user", idTemp); GameData_1.default._instance.GM_INFO.userId = parseInt(GameData_1.default._instance.GM_INFO.userId); } }; @@ -81,13 +104,28 @@ var NewClass = /** @class */ (function (_super) { arr.map(function (item) { arr2_1.push(item.split("=")[1]); }); - GameData_1.default._instance.GM_INFO.userId = arr2_1[0] + ""; + // GameData._instance.GM_INFO.userId = arr2[0] + ""; return arr2_1[0]; } else { return null; } }; + NewClass.prototype.getId = function (str) { + var pathStr = str; + var arr = pathStr.split("?"); + if (pathStr.length >= 0 && arr.length > 0) { + var arr2_2 = []; + arr.map(function (item) { + arr2_2.push(item.split("=")[1]); + }); + // GameData._instance.GM_INFO.userId = arr2[1] + ""; + return arr2_2; + } + else { + return null; + } + }; NewClass.prototype.startGame = function () { GameData_1.default._instance.GM_INFO.custom = 0; cc.director.loadScene("GuideScene"); @@ -136,4 +174,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxMb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGO0FBQzVFLElBQUEsS0FBd0MsRUFBRSxDQUFDLFVBQVUsRUFBcEQsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsZ0JBQWdCLHNCQUFpQixDQUFDO0FBQzVELHVDQUFrQztBQUdsQywyQ0FBMkM7QUFHM0M7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUFpRkM7UUE5RUcsV0FBSyxHQUFhLElBQUksQ0FBQztRQUd2QixVQUFJLEdBQVcsT0FBTyxDQUFDOztRQTBFdkIsaUJBQWlCO0lBQ3JCLENBQUM7SUF4RUcsd0JBQUssR0FBTDtRQUNJLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELElBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDekMsSUFBSSxHQUFHLEdBQUcsb0hBQW9ILENBQUM7WUFDL0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQzlCO2FBQ0c7WUFDQSxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkY7SUFFTCxDQUFDO0lBRUQsZ0NBQWEsR0FBYjtRQUFBLGlCQVNDO1FBUkcsSUFBSSxHQUFHLEdBQUcsd0dBQXdHLENBQUM7UUFDbkgsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQUMsR0FBRyxFQUFFLE9BQW9CO1lBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3hCLElBQUcsT0FBTyxFQUFDO2dCQUNQLElBQUksTUFBTSxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3BEO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRU8sNEJBQVMsR0FBakI7UUFDSSxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVyQyxJQUFJLEdBQUcsR0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBRyxDQUFDLElBQUUsR0FBRyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxNQUFJLEdBQUMsRUFBRSxDQUFDO1lBQ1osR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUk7Z0JBQ1IsTUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDakMsQ0FBQyxDQUFDLENBQUE7WUFDRixrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDakQsT0FBTyxNQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEI7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFBO1NBQ2Q7SUFDTCxDQUFDO0lBRUQsNEJBQVMsR0FBVDtRQUNJLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCwyQkFBUSxHQUFSLFVBQVMsS0FBSyxFQUFDLElBQUk7UUFDZixrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRCxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsNEJBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVELDJCQUFRLEdBQVI7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3JELENBQUM7SUFFRCx1QkFBSSxHQUFKLFVBQUssSUFBSTtRQUNMLFlBQVk7SUFDaEIsQ0FBQztJQUVELDBCQUFPLEdBQVA7UUFDSSxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN0QyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsMkJBQVEsR0FBUjtRQUNJLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXZDLENBQUM7SUEzRUQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzsyQ0FDSTtJQUd2QjtRQURDLFFBQVE7MENBQ2M7SUFOTixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBaUY1QjtJQUFELGVBQUM7Q0FqRkQsQUFpRkMsQ0FqRnFDLEVBQUUsQ0FBQyxTQUFTLEdBaUZqRDtrQkFqRm9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eSwgcmVxdWlyZUNvbXBvbmVudH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5pbXBvcnQgR2FtZURhdGEgZnJvbSBcIi4vR2FtZURhdGFcIjtcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuaW1wb3J0IFJxIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuLy8gaW1wb3J0IHsgYXBpU2lnbiB9IGZyb20gXCIuL2NyeXB0by9zaWduXCI7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPSB0aGlzLmdldFVzZXJJZCgpO1xyXG4gICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnVzZXJJZCA9PSBudWxsKXtcclxuICAgICAgICAgICAgbGV0IHVybCA9IFwiaHR0cDovL2FwaS5zcGFya3VzLmNuL2FwaS91c2VyL2F1dGgvbG9naW4/ZG9tYWluPWh1aTMyNTc5V2RZUHNnWXEmY2FsbGJhY2s9aHR0cDovL3RyYWluLnNwYXJrdXMuY24vdGVzdC9TdW5fbW92ZXMvXCI7XHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPSBwYXJzZUludChHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQpO1xyXG4gICAgICAgIH1cclxuIFxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVRleHR1cmUoKXtcclxuICAgICAgICBsZXQgdXJsID0gXCJodHRwOi8vc3RhdGljLnNwYXJrdXMuY24vc2hvb3Qtc3VuL2Fzc2V0cy9yZXNvdXJjZXMvbmF0aXZlLzdhLzdhOGI0MWFkLTk0MjUtNDRlMi04ZjU1LTc3NDBmMTJiMGUwYS5qcGdcIjtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIChlcnIsIHRleHR1cmU6Y2MuVGV4dHVyZTJEKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHZhciBzcHJpdGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFVzZXJJZCgpIHtcclxuICAgICAgICBsZXQgcGF0aFN0ciA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XHJcblxyXG4gICAgICAgIGxldCBhcnI9cGF0aFN0ci5zcGxpdChcIiZcIik7XHJcbiAgICAgICAgaWYgKHBhdGhTdHIubGVuZ3RoPj0gMCYmYXJyLmxlbmd0aD4wKSB7XHJcbiAgICAgICAgICAgIGxldCBhcnIyPVtdO1xyXG4gICAgICAgICAgICBhcnIubWFwKGl0ZW09PntcclxuICAgICAgICAgICAgICAgIGFycjIucHVzaChpdGVtLnNwbGl0KFwiPVwiKVsxXSlcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkID0gYXJyMlswXSArIFwiXCI7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnIyWzBdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbSA9IDA7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR3VpZGVTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY2xpY2tCdG4oZXZlbnQsZGF0YSl7XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8uY3VzdG9tID0gcGFyc2VJbnQoZGF0YSk7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgfSAgIFxyXG5cclxuICAgIG9wZW5MZXZlbCgpe1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxldmVsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VCdG4oKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMZXZlbFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrKGRhdGEpe1xyXG4gICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5CdG4oKXtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b20gPSAwO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkd1aWRlU2NlbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblJhbmsoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJSYW5rU2NlbmVcIik7XHJcblxyXG4gICAgfVxyXG4gICBcclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxMb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGO0FBQzVFLElBQUEsS0FBd0MsRUFBRSxDQUFDLFVBQVUsRUFBcEQsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsZ0JBQWdCLHNCQUFpQixDQUFDO0FBQzVELHVDQUFrQztBQUNsQyxxQ0FBMkM7QUFHM0MsbURBQW1EO0FBQ25ELDJDQUEyQztBQUczQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXNIQztRQW5IRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7O1FBK0d2QixpQkFBaUI7SUFDckIsQ0FBQztJQTdHRyx3QkFBSyxHQUFMO1FBQ0ksSUFBSSxNQUFNLEdBQUcsd0JBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsSUFBRyxNQUFNLElBQUksVUFBVSxJQUFJLE1BQU0sSUFBRSxJQUFJLEVBQUM7WUFDcEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hCO2FBQ0c7WUFDQSxJQUFJLElBQUksR0FBRyx3QkFBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDekQsSUFBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUM7Z0JBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FB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QUFDO0lBRUQsMEJBQU8sR0FBUDtRQUNJLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCwyQkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdkMsQ0FBQztJQWhIRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTswQ0FDYztJQU5OLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0FzSDVCO0lBQUQsZUFBQztDQXRIRCxBQXNIQyxDQXRIcUMsRUFBRSxDQUFDLFNBQVMsR0FzSGpEO2tCQXRIb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5LCByZXF1aXJlQ29tcG9uZW50fSA9IGNjLl9kZWNvcmF0b3I7XHJcbmltcG9ydCBHYW1lRGF0YSBmcm9tIFwiLi9HYW1lRGF0YVwiO1xyXG5pbXBvcnQgeyBTdG9yYWdlTWVzc2FnZSB9IGZyb20gXCIuL1N0b3JhZ2VcIjtcclxuaW1wb3J0IEh0dHBVdGlsIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuaW1wb3J0IFJxIGZyb20gXCIuL2NyeXB0by9zZXJ2ZXJBUElcIjtcclxuLy8gaW1wb3J0IHtTdG9yYWdlTWVzc2FnZX0gZnJvbSBcIi4vU3RvcmFnZU1lc3NhZ2VcIjtcclxuLy8gaW1wb3J0IHsgYXBpU2lnbiB9IGZyb20gXCIuL2NyeXB0by9zaWduXCI7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICBsZXQgdXNlcklkID0gU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInVzZXJcIik7XHJcbiAgICAgICAgaWYodXNlcklkID09IFwidW5kaWZlbmRcIiB8fCB1c2VySWQ9PW51bGwpe1xyXG4gICAgICAgICAgICB0aGlzLnNldElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInVzZXJcIik7XHJcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLmdldElkKGRhdGEpO1xyXG4gICAgICAgICAgICBsZXQgdGltZXN0YW1wID0gcGFyc2VJbnQobmV3IERhdGUoKS5nZXRUaW1lKCkvMTAwMCArIFwiXCIpO1xyXG4gICAgICAgICAgICBpZigodGltZXN0YW1wIC0gZGF0YVsyXSkgPiA4NjQwMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldElkKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkID0gZGF0YVsxXTtcclxuICAgICAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkID0gcGFyc2VJbnQoR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0SWQoKXtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPSB0aGlzLmdldFVzZXJJZCgpO1xyXG4gICAgICAgIGlmKEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnVzZXJJZCA9PSBudWxsKXtcclxuICAgICAgICAgICAgbGV0IHVybCA9IFwiaHR0cDovL2FwaS5zcGFya3VzLmNuL2FwaS91c2VyL2F1dGgvbG9naW4/ZG9tYWluPWh1aTMyNTc5V2RZUHNnWXEmY2FsbGJhY2s9XCIrbG9jYXRpb24uaHJlZjtcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGxldCB0aW1lc3RhbXAgPSBwYXJzZUludChuZXcgRGF0ZSgpLmdldFRpbWUoKS8xMDAwICsgXCJcIik7XHJcbiAgICAgICAgICAgIGxldCBpZFRlbXAgPSBcImdhbWVJZD1cIiArIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmdhbWVJZCArIFxyXG4gICAgICAgICAgICBcIj91c2VySWQ9IFwiICsgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8udXNlcklkICsgXCI/dGltZT1cIiArIHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInVzZXJcIixpZFRlbXApO1xyXG4gICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQgPSBwYXJzZUludChHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy51c2VySWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVUZXh0dXJlKCl7XHJcbiAgICAgICAgbGV0IHVybCA9IFwiaHR0cDovL3N0YXRpYy5zcGFya3VzLmNuL3Nob290LXN1bi9hc3NldHMvcmVzb3VyY2VzL25hdGl2ZS83YS83YThiNDFhZC05NDI1LTQ0ZTItOGY1NS03NzQwZjEyYjBlMGEuanBnXCI7XHJcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUodXJsLCAoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsdGV4dHVyZSlcclxuICAgICAgICAgICAgaWYodGV4dHVyZSl7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3ByaXRlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIHNwcml0ZS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRVc2VySWQoKSB7XHJcbiAgICAgICAgbGV0IHBhdGhTdHIgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xyXG5cclxuICAgICAgICBsZXQgYXJyPXBhdGhTdHIuc3BsaXQoXCImXCIpO1xyXG4gICAgICAgIGlmIChwYXRoU3RyLmxlbmd0aD49IDAmJmFyci5sZW5ndGg+MCkge1xyXG4gICAgICAgICAgICBsZXQgYXJyMj1bXTtcclxuICAgICAgICAgICAgYXJyLm1hcChpdGVtPT57XHJcbiAgICAgICAgICAgICAgICBhcnIyLnB1c2goaXRlbS5zcGxpdChcIj1cIilbMV0pXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC8vIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnVzZXJJZCA9IGFycjJbMF0gKyBcIlwiO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyMlswXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldElkKHN0cikge1xyXG4gICAgICAgIGxldCBwYXRoU3RyID0gc3RyO1xyXG5cclxuICAgICAgICBsZXQgYXJyPXBhdGhTdHIuc3BsaXQoXCI/XCIpO1xyXG4gICAgICAgIGlmIChwYXRoU3RyLmxlbmd0aD49IDAmJmFyci5sZW5ndGg+MCkge1xyXG4gICAgICAgICAgICBsZXQgYXJyMj1bXTtcclxuICAgICAgICAgICAgYXJyLm1hcChpdGVtPT57XHJcbiAgICAgICAgICAgICAgICBhcnIyLnB1c2goaXRlbS5zcGxpdChcIj1cIilbMV0pXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC8vIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLnVzZXJJZCA9IGFycjJbMV0gKyBcIlwiO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyMjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5jdXN0b20gPSAwO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkd1aWRlU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNsaWNrQnRuKGV2ZW50LGRhdGEpe1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmN1c3RvbSA9IHBhcnNlSW50KGRhdGEpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgIH0gICBcclxuXHJcbiAgICBvcGVuTGV2ZWwoKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJMZXZlbFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlQnRuKCl7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTGV2ZWxcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgYmFjayhkYXRhKXtcclxuICAgICAgICAvLyBkZWJ1Z2dlcjtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuQnRuKCl7XHJcbiAgICAgICAgR2FtZURhdGEuX2luc3RhbmNlLkdNX0lORk8uY3VzdG9tID0gMDtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHdWlkZVNjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5SYW5rKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiUmFua1NjZW5lXCIpO1xyXG5cclxuICAgIH1cclxuICAgXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/Storage.js b/temp/quick-scripts/dst/assets/Script/Storage.js index 4f6063d..21cf50c 100644 --- a/temp/quick-scripts/dst/assets/Script/Storage.js +++ b/temp/quick-scripts/dst/assets/Script/Storage.js @@ -10,44 +10,41 @@ }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'b5d92kgCRlKu5IYKnaGPgoa', 'Storage'); -// Script/Storage.js +cc._RF.push(module, '7cf8cMT5zJA0ZU4Gp0JcL8v', 'Storage'); +// Script/Storage.ts "use strict"; - +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StorageMessage = void 0; // var jequry = require("jquery"); // var coinManager = require("coinManager"); var StorageMessage = { - getStorage: function getStorage(key) { - var result = null; - - if (cc.sys.localStorage.getItem(key)) { - var result = cc.sys.localStorage.getItem(key); - } - - if (result) { - result = JSON.parse(result); - } - - return result; - }, - setStorage: function setStorage(key, value) { - //主动拉起分享接口 - var temp = JSON.stringify(value); - cc.sys.localStorage.setItem(key, temp); // debugger; - // var temp = cc.sys.localStorage.getItem(key); - // debugger; - }, - removeStorage: function removeStorage(key) { - //主动删除消息接口 - if (cc.sys.localStorage.getItem(key)) { - cc.sys.localStorage.removeItem(key); - } - } -}; -module.exports = { - StorageMessage: StorageMessage + getStorage: function (key) { + var result = null; + if (cc.sys.localStorage.getItem(key)) { + var result = cc.sys.localStorage.getItem(key); + } + if (result) { + result = JSON.parse(result); + } + return result; + }, + setStorage: function (key, value) { + //主动拉起分享接口 + var temp = JSON.stringify(value); + cc.sys.localStorage.setItem(key, temp); + // debugger; + // var temp = cc.sys.localStorage.getItem(key); + // debugger; + }, + removeStorage: function (key) { + //主动删除消息接口 + if (cc.sys.localStorage.getItem(key)) { + cc.sys.localStorage.removeItem(key); + } + }, }; +exports.StorageMessage = StorageMessage; cc._RF.pop(); } @@ -60,4 +57,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTdG9yYWdlLmpzIl0sIm5hbWVzIjpbIlN0b3JhZ2VNZXNzYWdlIiwiZ2V0U3RvcmFnZSIsImtleSIsInJlc3VsdCIsImNjIiwic3lzIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsIkpTT04iLCJwYXJzZSIsInNldFN0b3JhZ2UiLCJ2YWx1ZSIsInRlbXAiLCJzdHJpbmdpZnkiLCJzZXRJdGVtIiwicmVtb3ZlU3RvcmFnZSIsInJlbW92ZUl0ZW0iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUNBO0FBQ0E7QUFDQSxJQUFJQSxjQUFjLEdBQUc7QUFDakJDLEVBQUFBLFVBQVUsRUFBRyxvQkFBU0MsR0FBVCxFQUFhO0FBQ3RCLFFBQUlDLE1BQU0sR0FBRyxJQUFiOztBQUNBLFFBQUdDLEVBQUUsQ0FBQ0MsR0FBSCxDQUFPQyxZQUFQLENBQW9CQyxPQUFwQixDQUE0QkwsR0FBNUIsQ0FBSCxFQUFvQztBQUNsQyxVQUFJQyxNQUFNLEdBQUdDLEVBQUUsQ0FBQ0MsR0FBSCxDQUFPQyxZQUFQLENBQW9CQyxPQUFwQixDQUE0QkwsR0FBNUIsQ0FBYjtBQUNEOztBQUVELFFBQUdDLE1BQUgsRUFBVTtBQUNSQSxNQUFBQSxNQUFNLEdBQUdLLElBQUksQ0FBQ0MsS0FBTCxDQUFXTixNQUFYLENBQVQ7QUFDRDs7QUFDRCxXQUFPQSxNQUFQO0FBQ0gsR0FYZ0I7QUFZakJPLEVBQUFBLFVBQVUsRUFBRyxvQkFBU1IsR0FBVCxFQUFhUyxLQUFiLEVBQW1CO0FBQzVCO0FBQ0EsUUFBSUMsSUFBSSxHQUFHSixJQUFJLENBQUNLLFNBQUwsQ0FBZUYsS0FBZixDQUFYO0FBQ0FQLElBQUFBLEVBQUUsQ0FBQ0MsR0FBSCxDQUFPQyxZQUFQLENBQW9CUSxPQUFwQixDQUE0QlosR0FBNUIsRUFBaUNVLElBQWpDLEVBSDRCLENBSTVCO0FBQ0E7QUFDQTtBQUNILEdBbkJnQjtBQW9CakJHLEVBQUFBLGFBQWEsRUFBRyx1QkFBU2IsR0FBVCxFQUFhO0FBQzNCO0FBQ0EsUUFBR0UsRUFBRSxDQUFDQyxHQUFILENBQU9DLFlBQVAsQ0FBb0JDLE9BQXBCLENBQTRCTCxHQUE1QixDQUFILEVBQW9DO0FBQ2xDRSxNQUFBQSxFQUFFLENBQUNDLEdBQUgsQ0FBT0MsWUFBUCxDQUFvQlUsVUFBcEIsQ0FBK0JkLEdBQS9CO0FBQ0Q7QUFDRjtBQXpCZ0IsQ0FBckI7QUE0QkFlLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNmbEIsRUFBQUEsY0FBYyxFQUFFQTtBQURELENBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIHZhciBqZXF1cnkgPSByZXF1aXJlKFwianF1ZXJ5XCIpO1xuLy8gdmFyIGNvaW5NYW5hZ2VyID0gcmVxdWlyZShcImNvaW5NYW5hZ2VyXCIpO1xudmFyIFN0b3JhZ2VNZXNzYWdlID0ge1xuICAgIGdldFN0b3JhZ2UgOiBmdW5jdGlvbihrZXkpe1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVsbDtcbiAgICAgICAgaWYoY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpe1xuICAgICAgICAgIHZhciByZXN1bHQgPSBjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYocmVzdWx0KXtcbiAgICAgICAgICByZXN1bHQgPSBKU09OLnBhcnNlKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICAgIHNldFN0b3JhZ2UgOiBmdW5jdGlvbihrZXksdmFsdWUpe1xuICAgICAgICAvL+S4u+WKqOaLiei1t+WIhuS6q+aOpeWPo1xuICAgICAgICB2YXIgdGVtcCA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdGVtcClcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIC8vIHZhciB0ZW1wID0gY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgIH0sXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAvL+S4u+WKqOWIoOmZpOa2iOaBr+aOpeWPo1xuICAgICAgaWYoY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpe1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICAgICAgfVxuICAgIH0sXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgU3RvcmFnZU1lc3NhZ2U6IFN0b3JhZ2VNZXNzYWdlLFxufSJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGtDQUFrQztBQUNsQyw0Q0FBNEM7QUFDNUMsSUFBSSxjQUFjLEdBQUc7SUFDakIsVUFBVSxFQUFHLFVBQVMsR0FBRztRQUNyQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBRyxNQUFNLEVBQUM7WUFDUixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxVQUFVLEVBQUcsVUFBUyxHQUFHLEVBQUMsS0FBSztRQUMzQixVQUFVO1FBQ1YsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3RDLFlBQVk7UUFDWiwrQ0FBK0M7UUFDL0MsWUFBWTtJQUNoQixDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gdmFyIGplcXVyeSA9IHJlcXVpcmUoXCJqcXVlcnlcIik7XG4vLyB2YXIgY29pbk1hbmFnZXIgPSByZXF1aXJlKFwiY29pbk1hbmFnZXJcIik7XG52YXIgU3RvcmFnZU1lc3NhZ2UgPSB7XG4gICAgZ2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xuICAgICAgICBpZihjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSl7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZihyZXN1bHQpe1xuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSx2YWx1ZSl7XG4gICAgICAgIC8v5Li75Yqo5ouJ6LW35YiG5Lqr5o6l5Y+jXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0ZW1wKVxuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgLy8gdmFyIHRlbXAgPSBjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgfSxcbiAgICByZW1vdmVTdG9yYWdlIDogZnVuY3Rpb24oa2V5KXtcbiAgICAgIC8v5Li75Yqo5Yig6Zmk5raI5oGv5o6l5Y+jXG4gICAgICBpZihjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSl7XG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gICAgICB9XG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IFN0b3JhZ2VNZXNzYWdlIH07Il19 \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/GameData.js.map b/temp/quick-scripts/src/assets/Script/GameData.js.map index 1236185..e262a2c 100644 --- a/temp/quick-scripts/src/assets/Script/GameData.js.map +++ b/temp/quick-scripts/src/assets/Script/GameData.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\GameData.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class GameData extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n static _instance: any;\r\n GM_INFO: {};\r\n AudioManager: any;\r\n\r\n GAME_DATA: any[];\r\n LEVEL_INFO: { //第一难度\r\n number: number; //太阳总数 \r\n moveNumber: number; //太阳可移动个数\r\n moveSpeed: number; //太阳移动速度等级\r\n maxDistance: number; //布局后移动最大距离\r\n maxMove: number; //初始布局最大移动距离\r\n repeat: number; //是否重叠,现在0 不重叠 1 重叠1个\r\n }[];\r\n CLICK_DATA: { type: number; success: boolean; round: number; totalSunCount: number; movedSunCount: number; sunSpeed: number; overlapSunCount: number; colorList: any[]; duration: number; difficultyLevel: number; sunList: any[]; stepTimeList: any[]; remainder: number; };\r\n\r\n // LEVEL_INFO: { number: number; }[];\r\n // LEVEL_INFO:[];\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n \r\n onLoad () {\r\n if (GameData._instance == null) {\r\n GameData._instance = this;\r\n cc.game.addPersistRootNode(this.node);\r\n \r\n this.AudioManager = this.node.getComponent('BallAudioManager');\r\n }\r\n else {\r\n this.node.destroy();\r\n return;\r\n }\r\n }\r\n\r\n start () {\r\n this.GM_INFO = { \r\n // isEnd: false,\r\n mean_Time:0, //平均放箭速度\r\n total:0, //总共对的个数\r\n currSeed: 203213, //用于随机数种子\r\n gameId:'100009',\r\n userId:200139,\r\n guide:true, //是否有引导\r\n url:\"http://dev.api.sparkus.cn\",\r\n success:false,\r\n matchId:null,\r\n custom: 0\r\n };\r\n this.LEVEL_INFO = [\r\n { //第一难度\r\n number:3, //太阳总数 \r\n moveNumber:0, //太阳可移动个数\r\n moveSpeed:0, //太阳移动速度等级\r\n maxDistance:200, //布局后移动最大距离\r\n maxMove:1200,\r\n repeat:0 //是否重叠,现在0 不重叠 1 重叠1个\r\n \r\n },\r\n { //第二难度\r\n number:4,\r\n moveNumber:0,\r\n moveSpeed:0,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第三难度\r\n number:4,\r\n moveNumber:0,\r\n moveSpeed:0,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第四难度\r\n number:5,\r\n moveNumber:1,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第五难度\r\n number:5,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第六难度\r\n number:6,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第七难度\r\n number:6,\r\n moveNumber:3,\r\n moveSpeed:4,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第八难度\r\n number:7,\r\n moveNumber:0,\r\n moveSpeed:4,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第九难度\r\n number:7,\r\n moveNumber:3,\r\n moveSpeed:4,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第十难度\r\n number:7,\r\n moveNumber:3,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第十一难度\r\n number:8,\r\n moveNumber:3,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第十二难度\r\n number:8,\r\n moveNumber:5,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第十三难度\r\n number:9,\r\n moveNumber:3,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第十四难度\r\n number:9,\r\n moveNumber:5,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第十五难度\r\n number:10,\r\n moveNumber:5,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //11 \r\n number:3,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //12 \r\n number:4,\r\n moveNumber:0,\r\n moveSpeed:0,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //13 \r\n number:4,\r\n moveNumber:1,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //14 \r\n number:4,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //15 \r\n number:4,\r\n moveNumber:1,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //16 \r\n number:5,\r\n moveNumber:1,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //17 \r\n number:5,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //18 \r\n number:5,\r\n moveNumber:1,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //19 \r\n number:5,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //20 \r\n number:5,\r\n moveNumber:3,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //21 \r\n number:5,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //22 \r\n number:5,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //23 \r\n number:6,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //24 \r\n number:6,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //25 \r\n number:6,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //26 \r\n number:6,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //27 \r\n number:6,\r\n moveNumber:4,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //28 \r\n number:6,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //29 \r\n number:7,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //30 \r\n number:7,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //31 \r\n number:7,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //32 \r\n number:7,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //33 \r\n number:7,\r\n moveNumber:4,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //34 \r\n number:7,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //35 \r\n number:8,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //36 \r\n number:8,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //37 \r\n number:8,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //38 \r\n number:8,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //39 \r\n number:8,\r\n moveNumber:4,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //40 \r\n number:8,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //41 \r\n number:8,\r\n moveNumber:4,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //42 \r\n number:9,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //43 \r\n number:9,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //44 \r\n number:9,\r\n moveNumber:5,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //45 \r\n number:10,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n\r\n\r\n\r\n ]\r\n\r\n this.CLICK_DATA = \r\n {\r\n type:1,\r\n success:false,\r\n round:0,\r\n totalSunCount:0,\r\n movedSunCount:0,\r\n sunSpeed:0,\r\n overlapSunCount:0,\r\n colorList:[],\r\n duration:0,\r\n difficultyLevel:0,\r\n sunList:[],\r\n stepTimeList:[],\r\n remainder:120\r\n }\r\n\r\n this.GAME_DATA = [\r\n \r\n ]\r\n }\r\n\r\n CLICK_init(){\r\n this.CLICK_DATA = \r\n {\r\n type:1,\r\n success:false,\r\n round:0,\r\n totalSunCount:0,\r\n movedSunCount:0,\r\n sunSpeed:0,\r\n overlapSunCount:0,\r\n colorList:[],\r\n duration:0,\r\n difficultyLevel:0,\r\n sunList:[],\r\n stepTimeList:[],\r\n remainder:120\r\n }\r\n }\r\n\r\n // update (dt) {}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\GameData.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class GameData extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n static _instance: any;\r\n GM_INFO: {};\r\n AudioManager: any;\r\n\r\n GAME_DATA: any[];\r\n LEVEL_INFO: { //第一难度\r\n number: number; //太阳总数 \r\n moveNumber: number; //太阳可移动个数\r\n moveSpeed: number; //太阳移动速度等级\r\n maxDistance: number; //布局后移动最大距离\r\n maxMove: number; //初始布局最大移动距离\r\n repeat: number; //是否重叠,现在0 不重叠 1 重叠1个\r\n }[];\r\n CLICK_DATA: { type: number; success: boolean; round: number; totalSunCount: number; movedSunCount: number; sunSpeed: number; overlapSunCount: number; colorList: any[]; duration: number; difficultyLevel: number; sunList: any[]; stepTimeList: any[]; remainder: number; };\r\n\r\n // LEVEL_INFO: { number: number; }[];\r\n // LEVEL_INFO:[];\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n \r\n onLoad () {\r\n if (GameData._instance == null) {\r\n GameData._instance = this;\r\n cc.game.addPersistRootNode(this.node);\r\n \r\n this.AudioManager = this.node.getComponent('BallAudioManager');\r\n }\r\n else {\r\n this.node.destroy();\r\n return;\r\n }\r\n }\r\n\r\n start () {\r\n this.GM_INFO = { \r\n // isEnd: false,\r\n mean_Time:0, //平均放箭速度\r\n total:0, //总共对的个数\r\n currSeed: 203213, //用于随机数种子\r\n gameId:'100009',\r\n userId:200139,\r\n guide:true, //是否有引导\r\n url:\"http://api.sparkus.cn\",\r\n success:false,\r\n matchId:null,\r\n custom: 0\r\n };\r\n this.LEVEL_INFO = [\r\n { //第一难度\r\n number:3, //太阳总数 \r\n moveNumber:0, //太阳可移动个数\r\n moveSpeed:0, //太阳移动速度等级\r\n maxDistance:200, //布局后移动最大距离\r\n maxMove:1200,\r\n repeat:0 //是否重叠,现在0 不重叠 1 重叠1个\r\n \r\n },\r\n { //第二难度\r\n number:4,\r\n moveNumber:0,\r\n moveSpeed:0,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第三难度\r\n number:4,\r\n moveNumber:0,\r\n moveSpeed:0,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第四难度\r\n number:5,\r\n moveNumber:1,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第五难度\r\n number:5,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第六难度\r\n number:6,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第七难度\r\n number:6,\r\n moveNumber:3,\r\n moveSpeed:4,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第八难度\r\n number:7,\r\n moveNumber:0,\r\n moveSpeed:4,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第九难度\r\n number:7,\r\n moveNumber:3,\r\n moveSpeed:4,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第十难度\r\n number:7,\r\n moveNumber:3,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第十一难度\r\n number:8,\r\n moveNumber:3,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第十二难度\r\n number:8,\r\n moveNumber:5,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第十三难度\r\n number:9,\r\n moveNumber:3,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //第十四难度\r\n number:9,\r\n moveNumber:5,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //第十五难度\r\n number:10,\r\n moveNumber:5,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //11 \r\n number:3,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //12 \r\n number:4,\r\n moveNumber:0,\r\n moveSpeed:0,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //13 \r\n number:4,\r\n moveNumber:1,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //14 \r\n number:4,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //15 \r\n number:4,\r\n moveNumber:1,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //16 \r\n number:5,\r\n moveNumber:1,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //17 \r\n number:5,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //18 \r\n number:5,\r\n moveNumber:1,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //19 \r\n number:5,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //20 \r\n number:5,\r\n moveNumber:3,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //21 \r\n number:5,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //22 \r\n number:5,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //23 \r\n number:6,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //24 \r\n number:6,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //25 \r\n number:6,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //26 \r\n number:6,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //27 \r\n number:6,\r\n moveNumber:4,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //28 \r\n number:6,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //29 \r\n number:7,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //30 \r\n number:7,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //31 \r\n number:7,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //32 \r\n number:7,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //33 \r\n number:7,\r\n moveNumber:4,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //34 \r\n number:7,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //35 \r\n number:8,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //36 \r\n number:8,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //37 \r\n number:8,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //38 \r\n number:8,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //39 \r\n number:8,\r\n moveNumber:4,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //40 \r\n number:8,\r\n moveNumber:2,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //41 \r\n number:8,\r\n moveNumber:4,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //42 \r\n number:9,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n { //43 \r\n number:9,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //44 \r\n number:9,\r\n moveNumber:5,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:1\r\n },\r\n { //45 \r\n number:10,\r\n moveNumber:0,\r\n moveSpeed:6,\r\n maxDistance:200,\r\n maxMove:1200,\r\n repeat:0\r\n },\r\n\r\n\r\n\r\n ]\r\n\r\n this.CLICK_DATA = \r\n {\r\n type:1,\r\n success:false,\r\n round:0,\r\n totalSunCount:0,\r\n movedSunCount:0,\r\n sunSpeed:0,\r\n overlapSunCount:0,\r\n colorList:[],\r\n duration:0,\r\n difficultyLevel:0,\r\n sunList:[],\r\n stepTimeList:[],\r\n remainder:120\r\n }\r\n\r\n this.GAME_DATA = [\r\n \r\n ]\r\n }\r\n\r\n CLICK_init(){\r\n this.CLICK_DATA = \r\n {\r\n type:1,\r\n success:false,\r\n round:0,\r\n totalSunCount:0,\r\n movedSunCount:0,\r\n sunSpeed:0,\r\n overlapSunCount:0,\r\n colorList:[],\r\n duration:0,\r\n difficultyLevel:0,\r\n sunList:[],\r\n stepTimeList:[],\r\n remainder:120\r\n }\r\n }\r\n\r\n // update (dt) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/GameManager.js b/temp/quick-scripts/src/assets/Script/GameManager.js index f85104c..350b5b7 100644 --- a/temp/quick-scripts/src/assets/Script/GameManager.js +++ b/temp/quick-scripts/src/assets/Script/GameManager.js @@ -258,19 +258,23 @@ var GameManager = /** @class */ (function (_super) { } this.clickNow += 1; // GameData._instance.GM_INFO.total += 1; - setTimeout(function () { - if (_this.ball_Array[_this.clickNow - 1]) - _this.ball_Array[_this.clickNow - 1].getChildByName("guang").active = false; - }, 200); + if (this.ball_Array[this.clickNow - 1]) + this.ball_Array[this.clickNow - 1].getChildByName("guang").active = false; + // setTimeout(() => { + // }, 200); if (this.clickNow == this.now_Array.length) { this.pause = true; GameData_1.default._instance.GM_INFO.total += this.clickNow; this.overTime = this.getTime(); - GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); - console.log(GameData_1.default._instance.GM_INFO.mean_Time); + if (this.startTime > 0 && this.overTime > 0) { + GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); + } + // console.log("成功",GameData._instance.GM_INFO.mean_Time,this.overTime,this.startTime); + // console.log(GameData._instance.GM_INFO.mean_Time); var finish_time = parseInt((this.overTime - this.startTime) / 100 + ""); this.startTime = 0; this.overTime = 0; + // console.log("33333333"); var color = "y"; if (this.level < 4 && this.level > 1) color = "yr"; @@ -354,8 +358,9 @@ var GameManager = /** @class */ (function (_super) { GameData_1.default._instance.AudioManager.playWarning(); this.begin = false; this.overTime = this.getTime(); - GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); - console.log(GameData_1.default._instance.GM_INFO.mean_Time); + if (this.startTime > 0 && this.overTime > 0) { + GameData_1.default._instance.GM_INFO.mean_Time += (this.overTime - this.startTime); + } var finish_time = parseInt((this.overTime - this.startTime) / 100 + ""); this.startTime = 0; this.overTime = 0; @@ -550,27 +555,24 @@ var GameManager = /** @class */ (function (_super) { //0 1 2 3 4 5 6 7 8 9 //可移动区分 var pos_1 = cc.v2(0, 0); - if (info.number == 3) - this.moveArray = [0, 1, 0]; - else if (info.number == 4) - this.moveArray = [0, 0, 1, 0]; - else if (info.number == 5) - this.moveArray = [0, 0, 1, 0, 0]; - else if (info.number == 5) - this.moveArray = [0, 0, 1, 0, 0]; - else if (info.number == 6) - this.moveArray = [0, 0, 1, 1, 0, 0]; - else if (info.number == 7) - this.moveArray = [0, 0, 1, 1, 1, 0, 0]; - else if (info.number == 8) - this.moveArray = [0, 0, 0, 1, 1, 1, 1, 0]; - else if (info.number == 9) - this.moveArray = [0, 0, 1, 1, 1, 1, 1, 0, 0]; - else if (info.number == 10) - this.moveArray = [0, 0, 0, 1, 1, 1, 1, 1, 0, 0]; + for (var z = 0; z < info.number; z++) { + this.moveArray[z] = 0; + } + for (var p = 0; p < info.moveNumber; p++) { + this.moveArray[info.number - 1 - p] = 1; + } var timeOut = 0; //打乱可移动顺序 - // this.moveArray .sort(() => Math.random() - 0.5); + this.moveArray.sort(function () { return Math.random() - 0.5; }); + if (this.moveArray[0] == 1) { + for (var r = info.number - 1; r >= 0; r--) { + if (this.moveArray[r] == 0) { + this.moveArray[r] = 1; + this.moveArray[0] = 0; + r = -1; + } + } + } // debugger; //设置重叠 // this.repeat = -1; @@ -972,12 +974,15 @@ var GameManager = /** @class */ (function (_super) { this.unschedule(this.updateCountDownTime); this.setLoss(); var time = 0; - console.log(GameData_1.default._instance.GM_INFO.mean_Time, this.clickCount); + // console.log(GameData._instance.GM_INFO.mean_Time,this.clickCount); if (this.clickCount > 0) time = parseInt(GameData_1.default._instance.GM_INFO.mean_Time / this.clickCount + ""); GameData_1.default._instance.GM_INFO.mean_Time = parseInt(time / 100 + ""); GameData_1.default._instance.GM_INFO.mean_Time = GameData_1.default._instance.GM_INFO.mean_Time / 10; - console.log(GameData_1.default._instance.GM_INFO.mean_Time); + // console.log( GameData._instance.GM_INFO.mean_Time,time); + // debugger; + if (time > 10000) + time = (Math.random() * 10 + 5) * 100; this.setRank(time); } } @@ -985,11 +990,12 @@ var GameManager = /** @class */ (function (_super) { GameManager.prototype.setData = function () { var data = GameData_1.default._instance.GAME_DATA; var matchId = this.getMatchId(); + console.log(matchId); var postData = { "matchId": matchId, "data": data }; - // console.log("上传数据:",postData) + console.log("上传数据:"); serverAPI_1.default.uploadUserLogData(postData, function () { }); }; GameManager.prototype.getMatchId = function () { @@ -998,14 +1004,24 @@ var GameManager = /** @class */ (function (_super) { matchId = this.setMatchId(); } else { - var char = parseInt(matchId[10]); - char += 1; - matchId = matchId.slice(0, 10) + char + ""; - GameData_1.default._instance.GM_INFO.matchId = matchId; - cc.sys.localStorage.setItem("matchId", matchId); + if (this.containsNanana(matchId) == true) { + matchId = this.setMatchId(); + } + else { + var char = parseInt(matchId[10]); + if (this.round == 1) { + char += 1; + } + matchId = matchId.slice(0, 10) + char + ""; + GameData_1.default._instance.GM_INFO.matchId = matchId; + cc.sys.localStorage.setItem("matchId", matchId); + } } return matchId; }; + GameManager.prototype.containsNanana = function (str) { + return /na/i.test(str); + }; GameManager.prototype.setMatchId = function () { // 定义包含可用字符的字符集 var characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; @@ -1033,7 +1049,7 @@ var GameManager = /** @class */ (function (_super) { "totalSunCount": GameData_1.default._instance.GM_INFO.total, "success": GameData_1.default._instance.GM_INFO.success }; - console.log(postData); + // console.log(postData); serverAPI_1.default.rankData(1, function () { }, postData); this.node.getChildByName("GameOver").active = true; this.node.getChildByName("GameOver").opacity = 0; @@ -1049,20 +1065,6 @@ var GameManager = /** @class */ (function (_super) { GameManager.prototype.outPut = function () { var data = GameData_1.default._instance.CLICK_DATA; GameData_1.default._instance.GAME_DATA = []; - // if(data.succeed == true) this.label1.string = "成功/失败:成功"; - // else if(data.succeed == false) this.label1.string = "成功/失败:失败"; - // this.label2.string = "太阳总数量:"+data.sun_total; - // this.label3.string = "太阳移动数量:"+data.sun_move; - // this.label4.string = "太阳移动速度:"+data.sun_speed; - // this.label5.string = "太阳重叠个数:"+data.sun_overlap; - // if(data.sun_color == "y") this.label6.string = "太阳颜色:yellow"; - // else if(data.sun_color == "yr") this.label6.string = "太阳颜色:yellow,red"; - // else if(data.sun_color == "yrb") this.label6.string = "太阳颜色:yellow,red,black"; - // this.label7.string = "完成时间:"+data.finish_time+"s"; - // this.label8.string = "难度等级:"+data.sun_difficulty+"级"; - // if(data.sun_color == "y") console.log("太阳颜色:","yellow" ); - // else if(data.sun_color == "yr") console.log("太阳颜色:","yellow,red" ); - // else if(data.sun_color == "yrb") console.log("太阳颜色:","yellow,red,black" ); GameData_1.default._instance.GAME_DATA.push(GameData_1.default._instance.CLICK_DATA); GameData_1.default._instance.CLICK_init(); }; diff --git a/temp/quick-scripts/src/assets/Script/GameManager.js.map b/temp/quick-scripts/src/assets/Script/GameManager.js.map index aebefc8..8f3101a 100644 --- a/temp/quick-scripts/src/assets/Script/GameManager.js.map +++ b/temp/quick-scripts/src/assets/Script/GameManager.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\GameManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nconst {ccclass, property} = cc._decorator;\r\nimport GameData from './GameData';\r\nimport { Notification } from './Notification';\r\nimport HttpUtil from './crypto/serverAPI';\r\n@ccclass\r\nexport default class GameManager extends cc.Component {\r\n\r\n @property(cc.Node)\r\n ball: cc.Node = null;\r\n @property(cc.Prefab)\r\n qiu1: cc.Prefab = null;\r\n @property(cc.Prefab)\r\n qiu2: cc.Prefab = null;\r\n @property(cc.Prefab)\r\n qiu3: cc.Prefab = null;\r\n @property(cc.Prefab)\r\n linePrefab: cc.Prefab = null;\r\n @property(cc.Node)\r\n hit: cc.Node = null;\r\n\r\n bg1: cc.Node = null;\r\n bg2: cc.Node = null;\r\n time: cc.Label = null;\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n begin: boolean = false;\r\n fuhuo: boolean = false;\r\n over: boolean = false;\r\n show: boolean = false;\r\n countTime:number;\r\n timeCount:number;\r\n fitTop:number;\r\n fitBot:number;\r\n level:number;\r\n clickNow:number;\r\n startTime:number;\r\n overTime:number;\r\n winTime:number;\r\n clickCount:number;\r\n timeStart:number;\r\n route_Array: any[];\r\n now_Array: any[];\r\n ball_Array: any[];\r\n Line_Array: any[];\r\n Pos_Array: any[];\r\n time_Array: any[];\r\n color_Array: any[];\r\n\r\n\r\n @property(cc.Label)\r\n levelLabel: cc.Label = null;\r\n static _instance: any;\r\n moveArray: number[];\r\n repeat: number;\r\n numberRepeat: number;\r\n round: number;\r\n pause: boolean;\r\n\r\n onLoad () {\r\n\r\n }\r\n\r\n start () {\r\n this.fit();\r\n this.init();\r\n }\r\n fit(){\r\n this.fitTop = 450; //600\r\n this.fitBot = -600; //-700\r\n var jg = this.setFit();\r\n if(!jg){\r\n this.fitTop = 600;\r\n this.fitBot = -700;\r\n }\r\n }\r\n\r\n getSetScreenResolutionFlag () {\r\n let size = cc.winSize;\r\n let width = size.width;\r\n let height = size.height;\r\n if ((height / width) > (16.2 / 9)) return false;\r\n return true;\r\n }\r\n //判断全面屏适配\r\n setFit () {\r\n let flag = this.getSetScreenResolutionFlag();\r\n if (flag) {\r\n } else {\r\n }\r\n return flag;\r\n }\r\n\r\n //初始化数据\r\n init(){\r\n this.node.getChildByName(\"GameOver\").zIndex = 100;\r\n this.node.getChildByName(\"GameOver\").active = false;\r\n this.ball.zIndex = 100;\r\n this.bg1 = this.node.getChildByName(\"bg1\");\r\n this.bg2 = this.node.getChildByName(\"bg2\");\r\n this.time = this.node.getChildByName(\"Top\").getChildByName(\"time\").getComponent(cc.Label);\r\n this.node.getChildByName(\"showBtn\").active = false;\r\n this.begin = false;\r\n this.over = false;\r\n this.fuhuo = true;\r\n this.pause = true;\r\n this.show = false;\r\n this.round = 0; \r\n this.level = 2;\r\n this.countTime = 60;\r\n if(GameData._instance.GM_INFO.custom != 0){\r\n this.level = GameData._instance.GM_INFO.custom;\r\n // this.levelLabel.string = this.level + \"\";\r\n GameData._instance.GM_INFO.custom += 1;\r\n this.countTime = 12000000;\r\n }\r\n // this.levelLabel.string = this.level + \"\";\r\n \r\n this.timeCount = 0.1;\r\n this.clickNow = 0;\r\n this.clickCount = 0;\r\n this.timeStart = 0;\r\n this.repeat = -1;\r\n this.numberRepeat = -1;\r\n this.route_Array = [];\r\n this.moveArray = [];\r\n this.now_Array = [];\r\n this.ball_Array = [];\r\n this.Pos_Array = [];\r\n this.time_Array = [];\r\n this.color_Array = [];\r\n GameData._instance.GAME_DATA = [];\r\n GameData._instance.GM_INFO.success = false;\r\n this.startTime = 0;\r\n this.overTime = 0;\r\n this.winTime = 0;\r\n GameData._instance.GM_INFO.total = 0;\r\n\r\n GameData._instance.GM_INFO.mean_Time = 0;\r\n this.schedule(this.updateCountDownTime,1);\r\n\r\n\r\n this.startGame();\r\n }\r\n\r\n backScene(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n\r\n\r\n //下一关,或者重新开始,或者返回上一关,根据level决定\r\n reStart(type){\r\n // if(GameData._instance.GM_INFO.custom != 0){\r\n // cc.director.loadScene(\"LoadScene\");\r\n // return;\r\n // }\r\n this.node.getChildByName(\"showBtn\").active = false;\r\n this.destroyLine();\r\n this.timeCount = 0.1;\r\n this.clickNow = 0;\r\n this.timeStart = 0;\r\n this.repeat = -1;\r\n this.numberRepeat = -1;\r\n \r\n this.begin = false;\r\n this.route_Array = [];\r\n this.now_Array = [];\r\n this.ball_Array = [];\r\n this.Pos_Array = [];\r\n this.moveArray = [];\r\n this.time_Array = [];\r\n this.color_Array = [];\r\n \r\n if(type == 0){\r\n this.bgMove(1);\r\n }\r\n else if(type == 1){\r\n this.startGame();\r\n }\r\n else if(type == 2){\r\n this.bgMove(-1);\r\n }\r\n \r\n }\r\n\r\n begin_Guide(){\r\n\r\n }\r\n\r\n //获取时间戳\r\n getTime(){\r\n const timestamp = new Date().getTime();\r\n return timestamp;\r\n }\r\n\r\n //获胜\r\n passLevel(){\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n let timeArray = [];\r\n let timeCount = 0;\r\n let ball = this.ball_Array[0];\r\n for(let i=1; i< this.ball_Array.length; i++){\r\n let time = this.calculateDistance2(this.ball_Array[i].x,this.ball_Array[i].y,\r\n this.ball_Array[i-1].x,this.ball_Array[i-1].y);\r\n timeArray.push(time);\r\n }\r\n for(let k=1; k< this.ball_Array.length; k++){\r\n setTimeout(() => {\r\n cc.tween(ball)\r\n .to(timeArray[k-1],{x:this.ball_Array[k].x,y:this.ball_Array[k].y})\r\n .call(() =>{\r\n this.ball_Array[k].active = false;\r\n if(k == this.ball_Array.length-1){\r\n setTimeout(() => {\r\n this.ball.opacity = 255;\r\n this.ball.position = cc.v3(ball.x,ball.y,0);\r\n ball.active = false;\r\n this.clearSun();\r\n this.reStart(0);\r\n }, 200);\r\n }\r\n })\r\n .start();\r\n }, timeCount*1000);\r\n timeCount += (timeArray[k-1]+0.1);\r\n }\r\n }\r\n\r\n }\r\n //失败\r\n loseLevel(type){\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n let ball = this.ball_Array[0];\r\n for(let k=1; k< this.ball_Array.length; k++){\r\n cc.tween(this.ball_Array[k])\r\n .to(2,{x:ball.x,y:ball.y})\r\n .call(() =>{\r\n this.ball_Array[k].active = false;\r\n if(k == this.ball_Array.length-1){\r\n this.ball.opacity = 255;\r\n this.ball.position = cc.v3(ball.x,ball.y,0);\r\n this.clearSun();\r\n this.reStart(type);\r\n }\r\n })\r\n .start()\r\n }\r\n }\r\n\r\n }\r\n\r\n clearSun(){\r\n for(let k=0; k< this.ball_Array.length; k++){\r\n this.ball_Array[k].removeFromParent();\r\n this.ball_Array[k] = null;\r\n }\r\n }\r\n\r\n //点击太阳执行方法\r\n clickSun(data){\r\n if(this.begin == true){\r\n this.clickCount += 1;\r\n let clickTime = this.getTime();\r\n this.time_Array.push((clickTime - this.timeStart))\r\n this.timeStart = this.getTime();\r\n if(data == this.clickNow){\r\n GameData._instance.AudioManager.playAudioButton();\r\n if(this.clickNow > 0){\r\n this.createLine(cc.v2(this.ball_Array[this.clickNow-1].x,this.ball_Array[this.clickNow-1].y),\r\n cc.v2(this.ball_Array[this.clickNow].x,this.ball_Array[this.clickNow].y),\r\n 0.2); \r\n }\r\n this.clickNow += 1;\r\n // GameData._instance.GM_INFO.total += 1;\r\n \r\n setTimeout(() => {\r\n if(this.ball_Array[this.clickNow-1])\r\n this.ball_Array[this.clickNow-1].getChildByName(\"guang\").active = false;\r\n }, 200);\r\n \r\n \r\n if(this.clickNow == this.now_Array.length){\r\n this.pause = true;\r\n GameData._instance.GM_INFO.total += this.clickNow;\r\n\r\n this.overTime = this.getTime();\r\n GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime);\r\n console.log(GameData._instance.GM_INFO.mean_Time);\r\n let finish_time = parseInt((this.overTime - this.startTime)/100+\"\");\r\n this.startTime = 0; this.overTime = 0;\r\n let color = \"y\";\r\n if(this.level < 4 && this.level > 1)color = \"yr\";\r\n else if(this.level >= 4) color = \"yrb\";\r\n let win = this.node.getChildByName(\"Win\");\r\n win.active = true; win.setScale(0);\r\n GameData._instance.AudioManager.playWin();\r\n this.round += 1;\r\n let sunArray = [];\r\n if(this.moveArray.length > 0){\r\n for(let m=0 ; m{\r\n win.active = false;\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n if(this.level >= 15){\r\n GameData._instance.GM_INFO.success = true;\r\n this.level += 0;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n \r\n this.passLevel();\r\n }\r\n else{\r\n this.level += 1;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n \r\n this.passLevel();\r\n }\r\n }\r\n\r\n })\r\n .start();\r\n }\r\n }\r\n else{\r\n this.setLoss();\r\n }\r\n // this.hitAction(data)\r\n }\r\n\r\n }\r\n\r\n setLoss(){\r\n GameData._instance.AudioManager.playWarning();\r\n this.begin = false;\r\n this.overTime = this.getTime();\r\n GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime);\r\n console.log(GameData._instance.GM_INFO.mean_Time);\r\n let finish_time = parseInt((this.overTime - this.startTime)/100+\"\");\r\n this.startTime = 0; this.overTime = 0;\r\n let color = \"y\";\r\n if(this.level < 4 && this.level > 1)color = \"yr\";\r\n else if(this.level >= 4) color = \"yrb\";\r\n this.round += 1;\r\n let sunArray = [];\r\n if(this.moveArray.length > 0){\r\n for(let m=0 ; m 2){\r\n this.level -= 1;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n // this.fuhuo = false;\r\n this.loseLevel(2);\r\n }\r\n else{\r\n this.loseLevel(1);\r\n }\r\n }\r\n let over = this.node.getChildByName(\"Over\");\r\n cc.tween(over)\r\n .to(0.25,{opacity:255})\r\n .delay(0.1)\r\n .to(0.2,{opacity:0})\r\n .delay(0.1)\r\n .to(0.15,{opacity:255})\r\n .delay(0.1)\r\n .to(0.1,{opacity:0})\r\n .start();\r\n }\r\n\r\n hitAction(data){\r\n this.hit.active = true; this.hit.opacity = 0;\r\n this.hit.setPosition\r\n this.hit.setPosition(this.ball_Array[data].x+35,this.ball_Array[data].y+35);\r\n cc.tween(this.hit)\r\n .to(0,{opacity:255})\r\n .to(0.2,{position:cc.v3(this.hit.x-35,this.hit.y-35,0)})\r\n .delay(0.2)\r\n .to(0.1,{opacity:0})\r\n .call(() =>{\r\n this.hit.active = false;\r\n })\r\n .start();\r\n }\r\n\r\n //开始游戏\r\n startGame(){\r\n if(this.over == false && this.countTime > 0){\r\n this.pause = true;\r\n this.createSun();\r\n this.begin = false;\r\n cc.tween(this.ball)\r\n .to(0.5,{opacity:255,scale:1.3})\r\n .start();\r\n // this.runGame()\r\n }\r\n }\r\n\r\n runGame(){\r\n let time = -650;\r\n for(let i=0; i {\r\n if(this.over == false){\r\n let temp = this.now_Array[i].timeCount;\r\n if(temp > 0.5) temp = 0.5;\r\n if(i != 0){\r\n if(this.ball && this.now_Array[i]){\r\n this.createLine(cc.v2(this.ball.x,this.ball.y),cc.v2(this.now_Array[i].x,this.now_Array[i].y),\r\n this.now_Array[i].time-temp);\r\n }\r\n }\r\n \r\n cc.tween(this.ball)\r\n .to(this.now_Array[i].time-temp,{x:this.now_Array[i].x,y:this.now_Array[i].y})\r\n .to(0.1,{scale:1})\r\n .call(()=>{\r\n this.createBall(i,this.now_Array[i].color,this.now_Array[i].speed,this.now_Array[i].repeat);\r\n if(i == this.now_Array.length -1){\r\n this.ball.opacity = 0;\r\n setTimeout(() => {\r\n this.destroyLine();\r\n this.beginGame();\r\n if(GameData._instance.LEVEL_INFO[this.level-1].moveNumber<1){\r\n this.pause = false;\r\n }\r\n else{\r\n this.moveAction();\r\n }\r\n \r\n }, 150);\r\n }\r\n })\r\n .start()\r\n }\r\n\r\n }, time);\r\n \r\n }\r\n }\r\n\r\n createMove(){\r\n if(this.over == false){\r\n let info = GameData._instance.LEVEL_INFO[this.level-1];\r\n //改变移动速度\r\n var speed = 7;\r\n if(info.moveSpeed >= 2){\r\n speed = 7 - info.moveSpeed/2;\r\n }\r\n if(info.repeat == 1){\r\n this.repeat = parseInt((Math.random()*(info.number-1)+1) + \"\");\r\n let tempNumber = 0;\r\n // this.repeat = 4;\r\n if(this.repeat > 4){\r\n this.numberRepeat = parseInt(Math.random()*4 + \"\");\r\n if(this.repeat == (info.number-1)) //如果是最后一个 不能跟第一个重叠\r\n this.numberRepeat = this.repeat - parseInt( (Math.random()*3 + 2)+ \"\")\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n this.Pos_Array[this.repeat ] = tempNumber;\r\n }\r\n else{ // 0 1 2 3 4 5 \r\n // 6 - 3 - 1 = 2 4 01 4\r\n if(this.repeat == 0) this.repeat = 1;\r\n if((info.number-1-this.repeat ) == 2){\r\n this.numberRepeat = info.number - 1;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n else if((info.number-1-this.repeat ) == 1){\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n } \r\n else if((info.number-1-this.repeat ) == 0){\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n } \r\n else if((info.number-1-this.repeat ) > 2){\r\n this.numberRepeat = parseInt(Math.random()*(info.number-this.repeat -2) + \"\") + this.repeat + 2 ;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n else{\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n this.Pos_Array[this.repeat] = tempNumber;\r\n }\r\n }\r\n if(info.moveNumber > 0){\r\n //0 1 2 3 4 5 6 7 8 9\r\n //可移动区分\r\n let pos = cc.v2(0,0);\r\n if(info.number == 3) this.moveArray = [0,1,0];\r\n else if(info.number == 4) this.moveArray = [0,0,1,0];\r\n else if(info.number == 5) this.moveArray = [0,0,1,0,0];\r\n else if(info.number == 5) this.moveArray = [0,0,1,0,0];\r\n else if(info.number == 6) this.moveArray = [0,0,1,1,0,0];\r\n else if(info.number == 7) this.moveArray = [0,0,1,1,1,0,0];\r\n else if(info.number == 8) this.moveArray = [0,0,0,1,1,1,1,0];\r\n else if(info.number == 9) this.moveArray = [0,0,1,1,1,1,1,0,0];\r\n else if(info.number == 10) this.moveArray = [0,0,0,1,1,1,1,1,0,0];\r\n let timeOut = 0;\r\n //打乱可移动顺序\r\n // this.moveArray .sort(() => Math.random() - 0.5);\r\n // debugger;\r\n //设置重叠\r\n // this.repeat = -1;\r\n // this.numberRepeat = -1;\r\n\r\n //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7\r\n for(let k =0; k= 0; m--){\r\n if(m != k && this.moveArray[m] == 0 && m!= this.repeat && m!= this.numberRepeat){\r\n this.moveArray[m] = 1;\r\n this.moveArray[k] = 0;\r\n m = -1;\r\n }\r\n }\r\n }\r\n }\r\n for(let i =0; i {\r\n pos = this.getPos2(true,i);\r\n this.Pos_Array[i] = pos;\r\n }, timeOut*300);\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n //移动后数据 重新刷一遍赋值\r\n updateArray(){\r\n for(let i=0; i= 2){\r\n speed = 7 - info.moveSpeed/2;\r\n } \r\n \r\n\r\n if(info.moveNumber > 0){\r\n //0 1 2 3 4 5 6 7 8 9\r\n //可移动区分\r\n let pos = cc.v2(0,0);\r\n\r\n\r\n // this.repeat = -1;\r\n // this.numberRepeat = -1;\r\n\r\n //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7\r\n for(let k =0; k= 0; m--){\r\n if(m != k && this.moveArray[m] == 0 && m!= this.repeat && m!= this.numberRepeat){\r\n this.moveArray[m] = 1;\r\n this.moveArray[k] = 0;\r\n m = -1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n let lastNumber = 0;\r\n //锁定最后一个可移动的\r\n for(let j =0; j{\r\n this.ball_Array[i].getComponent(\"Sun\").move = false;\r\n })\r\n .start();\r\n }\r\n //如果是最后一个\r\n else{\r\n let time = speed*this.calculateDistance3(this.ball_Array[i].x,this.ball_Array[i].y,this.Pos_Array[i].x,this.Pos_Array[i].y);\r\n this.ball_Array[i].getComponent(\"Sun\").move = true;\r\n cc.tween(this.ball_Array[i])\r\n .to(time,{position:this.Pos_Array[i]})\r\n .call(() =>{\r\n this.ball_Array[i].getComponent(\"Sun\").move = false;\r\n })\r\n .start();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n beginGame(){\r\n this.begin = true;\r\n this.startTime = this.getTime();\r\n this.timeStart = this.getTime();\r\n this.pause = false;\r\n // this.node.getChildByName(\"showBtn\").active = true;\r\n }\r\n\r\n getRandomArray(lastNumber){\r\n let num = parseInt(Math.random()*8 - 4 + \"\");\r\n let jg = num + lastNumber;\r\n if(num > 1 || num <-1){\r\n if( num == 0 || ( jg<0 || jg >= this.Pos_Array.length)){\r\n jg = this.getRandomArray(lastNumber);\r\n }\r\n }\r\n else{\r\n jg = this.getRandomArray(lastNumber);\r\n }\r\n \r\n return jg;\r\n }\r\n\r\n //创建太阳所需数据\r\n createSun(){\r\n let levelData = GameData._instance.LEVEL_INFO[this.level-1];\r\n let tiemOut = 0;\r\n for(let l=0; l {\r\n if(this.over == false){\r\n let pos = this.getPos(false,l);\r\n this.Pos_Array.push(pos);\r\n if(this.Pos_Array.length == levelData.number){\r\n this.createMove();\r\n this.createPos();\r\n }\r\n }\r\n\r\n }, tiemOut*100);\r\n \r\n }\r\n // 0 0 0 0 0 0 0 0 0 0 0\r\n\r\n }\r\n\r\n createPos(){\r\n let data = {x:this.ball.x,y:this.ball.y,time:0,timeCount:0,color:0,speed:0,repeat:false};\r\n let levelData = GameData._instance.LEVEL_INFO[this.level-1];\r\n //颜色区分\r\n let colorArray = [0,1];\r\n for(let j=0; j Math.random() - 0.5);\r\n }\r\n colorArray.sort(() => Math.random() - 0.5);\r\n if(levelData.number == 4) colorArray = [0,0,0,0];\r\n this.color_Array = colorArray;\r\n\r\n\r\n for(let i=0; i 0){\r\n for(let i=0; i 0){\r\n for(let i=0; i 160){\r\n if(num == true){\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxMove){\r\n jg = true;\r\n } \r\n else jg = false;\r\n }\r\n else{\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxMove){\r\n jg = true;\r\n } \r\n else jg = false;\r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n getDistance2(x1, y1, x2, y2,num) {\r\n var jg = false;\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 160){\r\n if(num == true){\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxDistance) jg = true;\r\n else jg = false;\r\n }\r\n else{\r\n jg = true;\r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n\r\n createBall(number,color,speed,repeat){\r\n let ball = null;\r\n if(color == 0)ball = cc.instantiate(this.qiu1);\r\n else if(color == 1)ball = cc.instantiate(this.qiu2);\r\n else if(color == 2)ball = cc.instantiate(this.qiu3);\r\n ball.parent = this.node.getChildByName(\"Sun\");\r\n ball.zIndex = this.now_Array.length - number;\r\n ball.setPosition(this.ball.x,this.ball.y);\r\n ball.getComponent(\"Sun\").init(number,color,speed,repeat);\r\n this.ball_Array.push(ball);\r\n }\r\n\r\n destroyLine() {\r\n for(let i =0; i< this.node.getChildByName(\"Line\").children.length;i++){\r\n if(this.node.getChildByName(\"Line\").children[i]){\r\n this.node.getChildByName(\"Line\").children[i].removeFromParent();\r\n this.node.getChildByName(\"Line\").children[i] = null;\r\n }\r\n }\r\n this.node.getChildByName(\"Line\").removeAllChildren();\r\n }\r\n\r\n createLine(start,end,time){\r\n let line = cc.instantiate(this.linePrefab);\r\n line.parent = this.node.getChildByName(\"Line\");\r\n line.setPosition(start.x,start.y);\r\n \r\n const dx = end.x - start.x;\r\n const dy = end.y - start.y;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n line.height = distance;\r\n line.getComponent(cc.Sprite).fillRange = 0;\r\n line.angle = -this.calculateAngle(start.x,start.y,end.x,end.y);\r\n cc.tween(line.getComponent(cc.Sprite))\r\n .to(time,{fillRange:1})\r\n .start();\r\n }\r\n\r\n calculateAngle(x1, y1, x2, y2) {\r\n var angle = Math.atan2(y2-y1,x2-x1)*180 / Math.PI - 90;\r\n return -angle;\r\n }\r\n\r\n calculateDistance(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 800) distance = 800;\r\n const time = distance/800 * 0.6;\r\n return time;\r\n }\r\n\r\n calculateDistance2(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 1200) distance = 1200;\r\n const time = distance/1200 * 1;\r\n return time;\r\n }\r\n\r\n calculateDistance3(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 1200) distance = 1200;\r\n const time = distance/1200 * 1.5;\r\n return time;\r\n }\r\n\r\n //背景移动\r\n bgMove(type){\r\n let random = Math.random()*300 + 300;\r\n let posX = Math.random()*600 - 300;\r\n \r\n let y1 = this.bg1.y - random*type;\r\n // let y2 = this.bg2.y - random*type;\r\n let time1 = 0.7*(random/400);\r\n\r\n cc.tween(this.ball)\r\n .to(0.3,{scale:1.3})\r\n .to(time1,{x:posX})\r\n .start();\r\n\r\n cc.tween(this.bg1)\r\n .delay(0.3)\r\n .to(time1,{y:y1})\r\n .start();\r\n\r\n // cc.tween(this.bg2)\r\n // .delay(0.3)\r\n // .to(time1,{y:y2})\r\n // .start();\r\n\r\n setTimeout(() => {\r\n // if(this.over == false && GameData._instance.GM_INFO.custom == 0){\r\n // this.startGame();\r\n // }\r\n if(this.over == false){\r\n this.startGame();\r\n }\r\n \r\n }, time1*1500);\r\n }\r\n //时间格式转换\r\n getTimeMargin(second:number) {\r\n let total = 0;\r\n total = second;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n return m + ':' + miao\r\n }\r\n\r\n \r\n //如果是倒计时 调用此方法\r\n updateCountDownTime () {\r\n if (this.countTime > 0 && this.pause == false) {\r\n this.countTime -= 1;\r\n this.time.string = this.getTimeMargin(this.countTime);\r\n if(this.countTime < 5){\r\n cc.tween(this.time.node)\r\n .to(0.25,{scale:1.5,color:cc.color(255,0,0)})\r\n .to(0.25,{scale:1,color:cc.color(255,255,255)})\r\n .start()\r\n let over = this.node.getChildByName(\"Over\");\r\n cc.tween(over)\r\n .to(0.2,{opacity:255})\r\n .delay(0.1)\r\n .to(0.2,{opacity:0})\r\n .start();\r\n }\r\n if(this.countTime <= 0){\r\n this.begin = false;\r\n this.over = true;\r\n this.unschedule(this.updateCountDownTime);\r\n this.setLoss();\r\n var time = 0;\r\n console.log(GameData._instance.GM_INFO.mean_Time,this.clickCount);\r\n if(this.clickCount > 0) time = parseInt(GameData._instance.GM_INFO.mean_Time/this.clickCount + \"\");\r\n \r\n GameData._instance.GM_INFO.mean_Time = parseInt(time/100 + \"\");\r\n\r\n GameData._instance.GM_INFO.mean_Time = GameData._instance.GM_INFO.mean_Time /10;\r\n console.log( GameData._instance.GM_INFO.mean_Time);\r\n this.setRank(time);\r\n }\r\n }\r\n }\r\n\r\n setData(){\r\n let data = GameData._instance.GAME_DATA;\r\n let matchId = this.getMatchId();\r\n \r\n let postData = {\r\n \"matchId\":matchId,\r\n \"data\": data\r\n };\r\n // console.log(\"上传数据:\",postData)\r\n HttpUtil.uploadUserLogData(postData,function(){})\r\n }\r\n\r\n getMatchId (){\r\n let matchId = cc.sys.localStorage.getItem(\"matchId\");\r\n if(matchId == \"undifend\" || matchId==null){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n let char = parseInt(matchId[10]);\r\n char += 1;\r\n matchId = matchId.slice(0, 10) + char + \"\";\r\n GameData._instance.GM_INFO.matchId = matchId;\r\n cc.sys.localStorage.setItem(\"matchId\",matchId);\r\n }\r\n return matchId;\r\n }\r\n\r\n setMatchId (){\r\n // 定义包含可用字符的字符集\r\n const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n // 创建一个数组以保存随机字符\r\n const uuidArray = [];\r\n \r\n // 循环10次 生成10位的UUID\r\n for (let i = 0; i < 10; i++) {\r\n // 生成随机索引,范围是字符集的长度\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n // 从字符集中获取随机字符\r\n const randomChar = characters.charAt(randomIndex);\r\n // 将字符添加到数组中\r\n uuidArray.push(randomChar);\r\n }\r\n let data = uuidArray.join('') + 1 + \"\";\r\n cc.sys.localStorage.setItem(\"matchNumber\",1);\r\n cc.sys.localStorage.setItem(\"matchId\",data);\r\n GameData._instance.GM_INFO.matchId = data;\r\n return data;\r\n }\r\n\r\n setRank(time){\r\n let postData = {\r\n \"type\":1,\r\n \"reactionTime\": time,\r\n \"totalSunCount\": GameData._instance.GM_INFO.total,\r\n \"success\": GameData._instance.GM_INFO.success\r\n \r\n };\r\n console.log(postData);\r\n HttpUtil.rankData(1,function(){},postData);\r\n this.node.getChildByName(\"GameOver\").active = true;\r\n this.node.getChildByName(\"GameOver\").opacity = 0;\r\n cc.tween(this.node.getChildByName(\"GameOver\"))\r\n .to(0.4,{opacity:255})\r\n .delay(2)\r\n .to(0.4,{opacity:50})\r\n .call(() =>{\r\n cc.director.loadScene(\"OverScene\");\r\n })\r\n .start()\r\n \r\n }\r\n\r\n outPut(){\r\n\r\n let data = GameData._instance.CLICK_DATA;\r\n GameData._instance.GAME_DATA = [];\r\n // if(data.succeed == true) this.label1.string = \"成功/失败:成功\";\r\n // else if(data.succeed == false) this.label1.string = \"成功/失败:失败\";\r\n // this.label2.string = \"太阳总数量:\"+data.sun_total;\r\n // this.label3.string = \"太阳移动数量:\"+data.sun_move;\r\n // this.label4.string = \"太阳移动速度:\"+data.sun_speed;\r\n // this.label5.string = \"太阳重叠个数:\"+data.sun_overlap;\r\n // if(data.sun_color == \"y\") this.label6.string = \"太阳颜色:yellow\";\r\n // else if(data.sun_color == \"yr\") this.label6.string = \"太阳颜色:yellow,red\";\r\n // else if(data.sun_color == \"yrb\") this.label6.string = \"太阳颜色:yellow,red,black\";\r\n \r\n // this.label7.string = \"完成时间:\"+data.finish_time+\"s\";\r\n // this.label8.string = \"难度等级:\"+data.sun_difficulty+\"级\";\r\n\r\n // if(data.sun_color == \"y\") console.log(\"太阳颜色:\",\"yellow\" );\r\n // else if(data.sun_color == \"yr\") console.log(\"太阳颜色:\",\"yellow,red\" );\r\n // else if(data.sun_color == \"yrb\") console.log(\"太阳颜色:\",\"yellow,red,black\" );\r\n\r\n GameData._instance.GAME_DATA.push(GameData._instance.CLICK_DATA);\r\n GameData._instance.CLICK_init();\r\n }\r\n\r\n showNumber(){\r\n if(this.show == false) this.show = true;\r\n else if(this.show == true) this.show = false;\r\n for(let i=0; i (16.2 / 9)) return false;\r\n return true;\r\n }\r\n //判断全面屏适配\r\n setFit () {\r\n let flag = this.getSetScreenResolutionFlag();\r\n if (flag) {\r\n } else {\r\n }\r\n return flag;\r\n }\r\n\r\n //初始化数据\r\n init(){\r\n this.node.getChildByName(\"GameOver\").zIndex = 100;\r\n this.node.getChildByName(\"GameOver\").active = false;\r\n this.ball.zIndex = 100;\r\n this.bg1 = this.node.getChildByName(\"bg1\");\r\n this.bg2 = this.node.getChildByName(\"bg2\");\r\n this.time = this.node.getChildByName(\"Top\").getChildByName(\"time\").getComponent(cc.Label);\r\n this.node.getChildByName(\"showBtn\").active = false;\r\n this.begin = false;\r\n this.over = false;\r\n this.fuhuo = true;\r\n this.pause = true;\r\n this.show = false;\r\n this.round = 0; \r\n this.level = 2;\r\n this.countTime = 60;\r\n if(GameData._instance.GM_INFO.custom != 0){\r\n this.level = GameData._instance.GM_INFO.custom;\r\n // this.levelLabel.string = this.level + \"\";\r\n GameData._instance.GM_INFO.custom += 1;\r\n this.countTime = 12000000;\r\n }\r\n // this.levelLabel.string = this.level + \"\";\r\n \r\n this.timeCount = 0.1;\r\n this.clickNow = 0;\r\n this.clickCount = 0;\r\n this.timeStart = 0;\r\n this.repeat = -1;\r\n this.numberRepeat = -1;\r\n this.route_Array = [];\r\n this.moveArray = [];\r\n this.now_Array = [];\r\n this.ball_Array = [];\r\n this.Pos_Array = [];\r\n this.time_Array = [];\r\n this.color_Array = [];\r\n GameData._instance.GAME_DATA = [];\r\n GameData._instance.GM_INFO.success = false;\r\n this.startTime = 0;\r\n this.overTime = 0;\r\n this.winTime = 0;\r\n GameData._instance.GM_INFO.total = 0;\r\n\r\n GameData._instance.GM_INFO.mean_Time = 0;\r\n this.schedule(this.updateCountDownTime,1);\r\n\r\n\r\n this.startGame();\r\n }\r\n\r\n backScene(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n\r\n\r\n //下一关,或者重新开始,或者返回上一关,根据level决定\r\n reStart(type){\r\n // if(GameData._instance.GM_INFO.custom != 0){\r\n // cc.director.loadScene(\"LoadScene\");\r\n // return;\r\n // }\r\n this.node.getChildByName(\"showBtn\").active = false;\r\n this.destroyLine();\r\n this.timeCount = 0.1;\r\n this.clickNow = 0;\r\n this.timeStart = 0;\r\n this.repeat = -1;\r\n this.numberRepeat = -1;\r\n \r\n this.begin = false;\r\n this.route_Array = [];\r\n this.now_Array = [];\r\n this.ball_Array = [];\r\n this.Pos_Array = [];\r\n this.moveArray = [];\r\n this.time_Array = [];\r\n this.color_Array = [];\r\n \r\n if(type == 0){\r\n this.bgMove(1);\r\n }\r\n else if(type == 1){\r\n this.startGame();\r\n }\r\n else if(type == 2){\r\n this.bgMove(-1);\r\n }\r\n \r\n }\r\n\r\n begin_Guide(){\r\n\r\n }\r\n\r\n //获取时间戳\r\n getTime(){\r\n const timestamp = new Date().getTime();\r\n return timestamp;\r\n }\r\n\r\n //获胜\r\n passLevel(){\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n let timeArray = [];\r\n let timeCount = 0;\r\n let ball = this.ball_Array[0];\r\n for(let i=1; i< this.ball_Array.length; i++){\r\n let time = this.calculateDistance2(this.ball_Array[i].x,this.ball_Array[i].y,\r\n this.ball_Array[i-1].x,this.ball_Array[i-1].y);\r\n timeArray.push(time);\r\n }\r\n for(let k=1; k< this.ball_Array.length; k++){\r\n setTimeout(() => {\r\n cc.tween(ball)\r\n .to(timeArray[k-1],{x:this.ball_Array[k].x,y:this.ball_Array[k].y})\r\n .call(() =>{\r\n this.ball_Array[k].active = false;\r\n if(k == this.ball_Array.length-1){\r\n setTimeout(() => {\r\n this.ball.opacity = 255;\r\n this.ball.position = cc.v3(ball.x,ball.y,0);\r\n ball.active = false;\r\n this.clearSun();\r\n this.reStart(0);\r\n }, 200);\r\n }\r\n })\r\n .start();\r\n }, timeCount*1000);\r\n timeCount += (timeArray[k-1]+0.1);\r\n }\r\n }\r\n\r\n }\r\n //失败\r\n loseLevel(type){\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n let ball = this.ball_Array[0];\r\n for(let k=1; k< this.ball_Array.length; k++){\r\n cc.tween(this.ball_Array[k])\r\n .to(2,{x:ball.x,y:ball.y})\r\n .call(() =>{\r\n this.ball_Array[k].active = false;\r\n if(k == this.ball_Array.length-1){\r\n this.ball.opacity = 255;\r\n this.ball.position = cc.v3(ball.x,ball.y,0);\r\n this.clearSun();\r\n this.reStart(type);\r\n }\r\n })\r\n .start()\r\n }\r\n }\r\n\r\n }\r\n\r\n clearSun(){\r\n for(let k=0; k< this.ball_Array.length; k++){\r\n this.ball_Array[k].removeFromParent();\r\n this.ball_Array[k] = null;\r\n }\r\n }\r\n\r\n //点击太阳执行方法\r\n clickSun(data){\r\n if(this.begin == true){\r\n this.clickCount += 1;\r\n let clickTime = this.getTime();\r\n this.time_Array.push((clickTime - this.timeStart))\r\n this.timeStart = this.getTime();\r\n if(data == this.clickNow){\r\n GameData._instance.AudioManager.playAudioButton();\r\n if(this.clickNow > 0){\r\n this.createLine(cc.v2(this.ball_Array[this.clickNow-1].x,this.ball_Array[this.clickNow-1].y),\r\n cc.v2(this.ball_Array[this.clickNow].x,this.ball_Array[this.clickNow].y),\r\n 0.2); \r\n }\r\n this.clickNow += 1;\r\n // GameData._instance.GM_INFO.total += 1;\r\n if(this.ball_Array[this.clickNow-1])\r\n this.ball_Array[this.clickNow-1].getChildByName(\"guang\").active = false;\r\n // setTimeout(() => {\r\n \r\n // }, 200);\r\n \r\n \r\n if(this.clickNow == this.now_Array.length){\r\n this.pause = true;\r\n GameData._instance.GM_INFO.total += this.clickNow;\r\n\r\n this.overTime = this.getTime();\r\n if(this.startTime > 0 && this.overTime > 0){\r\n GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime);\r\n }\r\n // console.log(\"成功\",GameData._instance.GM_INFO.mean_Time,this.overTime,this.startTime);\r\n // console.log(GameData._instance.GM_INFO.mean_Time);\r\n let finish_time = parseInt((this.overTime - this.startTime)/100+\"\");\r\n this.startTime = 0; this.overTime = 0;\r\n // console.log(\"33333333\");\r\n let color = \"y\";\r\n if(this.level < 4 && this.level > 1)color = \"yr\";\r\n else if(this.level >= 4) color = \"yrb\";\r\n let win = this.node.getChildByName(\"Win\");\r\n win.active = true; win.setScale(0);\r\n GameData._instance.AudioManager.playWin();\r\n this.round += 1;\r\n let sunArray = [];\r\n if(this.moveArray.length > 0){\r\n for(let m=0 ; m{\r\n win.active = false;\r\n this.destroyLine();\r\n if(this.over == false && this.countTime >= 0){\r\n if(this.level >= 15){\r\n GameData._instance.GM_INFO.success = true;\r\n this.level += 0;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n \r\n this.passLevel();\r\n }\r\n else{\r\n this.level += 1;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n \r\n this.passLevel();\r\n }\r\n }\r\n\r\n })\r\n .start();\r\n }\r\n }\r\n else{\r\n this.setLoss();\r\n }\r\n // this.hitAction(data)\r\n }\r\n\r\n }\r\n\r\n setLoss(){\r\n GameData._instance.AudioManager.playWarning();\r\n this.begin = false;\r\n this.overTime = this.getTime();\r\n if(this.startTime > 0 && this.overTime > 0){\r\n GameData._instance.GM_INFO.mean_Time += (this.overTime - this.startTime);\r\n }\r\n let finish_time = parseInt((this.overTime - this.startTime)/100+\"\");\r\n this.startTime = 0; this.overTime = 0;\r\n let color = \"y\";\r\n if(this.level < 4 && this.level > 1)color = \"yr\";\r\n else if(this.level >= 4) color = \"yrb\";\r\n this.round += 1;\r\n let sunArray = [];\r\n if(this.moveArray.length > 0){\r\n for(let m=0 ; m 2){\r\n this.level -= 1;\r\n // this.levelLabel.string = this.level + \"\";\r\n this.fuhuo = true;\r\n // this.fuhuo = false;\r\n this.loseLevel(2);\r\n }\r\n else{\r\n this.loseLevel(1);\r\n }\r\n }\r\n let over = this.node.getChildByName(\"Over\");\r\n cc.tween(over)\r\n .to(0.25,{opacity:255})\r\n .delay(0.1)\r\n .to(0.2,{opacity:0})\r\n .delay(0.1)\r\n .to(0.15,{opacity:255})\r\n .delay(0.1)\r\n .to(0.1,{opacity:0})\r\n .start();\r\n }\r\n\r\n hitAction(data){\r\n this.hit.active = true; this.hit.opacity = 0;\r\n this.hit.setPosition\r\n this.hit.setPosition(this.ball_Array[data].x+35,this.ball_Array[data].y+35);\r\n cc.tween(this.hit)\r\n .to(0,{opacity:255})\r\n .to(0.2,{position:cc.v3(this.hit.x-35,this.hit.y-35,0)})\r\n .delay(0.2)\r\n .to(0.1,{opacity:0})\r\n .call(() =>{\r\n this.hit.active = false;\r\n })\r\n .start();\r\n }\r\n\r\n //开始游戏\r\n startGame(){\r\n if(this.over == false && this.countTime > 0){\r\n this.pause = true;\r\n this.createSun();\r\n this.begin = false;\r\n cc.tween(this.ball)\r\n .to(0.5,{opacity:255,scale:1.3})\r\n .start();\r\n // this.runGame()\r\n }\r\n }\r\n\r\n runGame(){\r\n let time = -650;\r\n for(let i=0; i {\r\n if(this.over == false){\r\n let temp = this.now_Array[i].timeCount;\r\n if(temp > 0.5) temp = 0.5;\r\n if(i != 0){\r\n if(this.ball && this.now_Array[i]){\r\n this.createLine(cc.v2(this.ball.x,this.ball.y),cc.v2(this.now_Array[i].x,this.now_Array[i].y),\r\n this.now_Array[i].time-temp);\r\n }\r\n }\r\n \r\n cc.tween(this.ball)\r\n .to(this.now_Array[i].time-temp,{x:this.now_Array[i].x,y:this.now_Array[i].y})\r\n .to(0.1,{scale:1})\r\n .call(()=>{\r\n this.createBall(i,this.now_Array[i].color,this.now_Array[i].speed,this.now_Array[i].repeat);\r\n if(i == this.now_Array.length -1){\r\n this.ball.opacity = 0;\r\n setTimeout(() => {\r\n this.destroyLine();\r\n this.beginGame();\r\n if(GameData._instance.LEVEL_INFO[this.level-1].moveNumber<1){\r\n this.pause = false;\r\n }\r\n else{\r\n this.moveAction();\r\n }\r\n \r\n }, 150);\r\n }\r\n })\r\n .start()\r\n }\r\n\r\n }, time);\r\n \r\n }\r\n }\r\n\r\n createMove(){\r\n if(this.over == false){\r\n let info = GameData._instance.LEVEL_INFO[this.level-1];\r\n //改变移动速度\r\n var speed = 7;\r\n if(info.moveSpeed >= 2){\r\n speed = 7 - info.moveSpeed/2;\r\n }\r\n if(info.repeat == 1){\r\n this.repeat = parseInt((Math.random()*(info.number-1)+1) + \"\");\r\n let tempNumber = 0;\r\n // this.repeat = 4;\r\n if(this.repeat > 4){\r\n this.numberRepeat = parseInt(Math.random()*4 + \"\");\r\n if(this.repeat == (info.number-1)) //如果是最后一个 不能跟第一个重叠\r\n this.numberRepeat = this.repeat - parseInt( (Math.random()*3 + 2)+ \"\")\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n this.Pos_Array[this.repeat ] = tempNumber;\r\n }\r\n else{ // 0 1 2 3 4 5 \r\n // 6 - 3 - 1 = 2 4 01 4\r\n if(this.repeat == 0) this.repeat = 1;\r\n if((info.number-1-this.repeat ) == 2){\r\n this.numberRepeat = info.number - 1;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n else if((info.number-1-this.repeat ) == 1){\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n } \r\n else if((info.number-1-this.repeat ) == 0){\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n } \r\n else if((info.number-1-this.repeat ) > 2){\r\n this.numberRepeat = parseInt(Math.random()*(info.number-this.repeat -2) + \"\") + this.repeat + 2 ;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n else{\r\n this.numberRepeat = this.repeat - 2;\r\n tempNumber = this.Pos_Array[this.numberRepeat];\r\n }\r\n this.Pos_Array[this.repeat] = tempNumber;\r\n }\r\n }\r\n if(info.moveNumber > 0){\r\n //0 1 2 3 4 5 6 7 8 9\r\n //可移动区分\r\n let pos = cc.v2(0,0);\r\n \r\n for(let z=0; z Math.random() - 0.5);\r\n if(this.moveArray[0] == 1){\r\n for(let r=info.number-1; r>=0; r--){\r\n if(this.moveArray[r] == 0){\r\n this.moveArray[r] = 1;\r\n this.moveArray[0] = 0;\r\n r = -1;\r\n }\r\n }\r\n }\r\n // debugger;\r\n //设置重叠\r\n // this.repeat = -1;\r\n // this.numberRepeat = -1;\r\n\r\n //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7\r\n for(let k =0; k= 0; m--){\r\n if(m != k && this.moveArray[m] == 0 && m!= this.repeat && m!= this.numberRepeat){\r\n this.moveArray[m] = 1;\r\n this.moveArray[k] = 0;\r\n m = -1;\r\n }\r\n }\r\n }\r\n }\r\n for(let i =0; i {\r\n pos = this.getPos2(true,i);\r\n this.Pos_Array[i] = pos;\r\n }, timeOut*300);\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n //移动后数据 重新刷一遍赋值\r\n updateArray(){\r\n for(let i=0; i= 2){\r\n speed = 7 - info.moveSpeed/2;\r\n } \r\n \r\n\r\n if(info.moveNumber > 0){\r\n //0 1 2 3 4 5 6 7 8 9\r\n //可移动区分\r\n let pos = cc.v2(0,0);\r\n\r\n\r\n // this.repeat = -1;\r\n // this.numberRepeat = -1;\r\n\r\n //将重叠的设置为不可移动 1 1 1 1 0 0 1 0 0 0 / 2 7\r\n for(let k =0; k= 0; m--){\r\n if(m != k && this.moveArray[m] == 0 && m!= this.repeat && m!= this.numberRepeat){\r\n this.moveArray[m] = 1;\r\n this.moveArray[k] = 0;\r\n m = -1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n let lastNumber = 0;\r\n //锁定最后一个可移动的\r\n for(let j =0; j{\r\n this.ball_Array[i].getComponent(\"Sun\").move = false;\r\n })\r\n .start();\r\n }\r\n //如果是最后一个\r\n else{\r\n let time = speed*this.calculateDistance3(this.ball_Array[i].x,this.ball_Array[i].y,this.Pos_Array[i].x,this.Pos_Array[i].y);\r\n this.ball_Array[i].getComponent(\"Sun\").move = true;\r\n cc.tween(this.ball_Array[i])\r\n .to(time,{position:this.Pos_Array[i]})\r\n .call(() =>{\r\n this.ball_Array[i].getComponent(\"Sun\").move = false;\r\n })\r\n .start();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n beginGame(){\r\n this.begin = true;\r\n this.startTime = this.getTime();\r\n this.timeStart = this.getTime();\r\n this.pause = false;\r\n // this.node.getChildByName(\"showBtn\").active = true;\r\n }\r\n\r\n getRandomArray(lastNumber){\r\n let num = parseInt(Math.random()*8 - 4 + \"\");\r\n let jg = num + lastNumber;\r\n if(num > 1 || num <-1){\r\n if( num == 0 || ( jg<0 || jg >= this.Pos_Array.length)){\r\n jg = this.getRandomArray(lastNumber);\r\n }\r\n }\r\n else{\r\n jg = this.getRandomArray(lastNumber);\r\n }\r\n \r\n return jg;\r\n }\r\n\r\n //创建太阳所需数据\r\n createSun(){\r\n let levelData = GameData._instance.LEVEL_INFO[this.level-1];\r\n let tiemOut = 0;\r\n for(let l=0; l {\r\n if(this.over == false){\r\n let pos = this.getPos(false,l);\r\n this.Pos_Array.push(pos);\r\n if(this.Pos_Array.length == levelData.number){\r\n this.createMove();\r\n this.createPos();\r\n }\r\n }\r\n\r\n }, tiemOut*100);\r\n \r\n }\r\n // 0 0 0 0 0 0 0 0 0 0 0\r\n\r\n }\r\n\r\n createPos(){\r\n let data = {x:this.ball.x,y:this.ball.y,time:0,timeCount:0,color:0,speed:0,repeat:false};\r\n let levelData = GameData._instance.LEVEL_INFO[this.level-1];\r\n //颜色区分\r\n let colorArray = [0,1];\r\n for(let j=0; j Math.random() - 0.5);\r\n }\r\n colorArray.sort(() => Math.random() - 0.5);\r\n if(levelData.number == 4) colorArray = [0,0,0,0];\r\n this.color_Array = colorArray;\r\n\r\n\r\n for(let i=0; i 0){\r\n for(let i=0; i 0){\r\n for(let i=0; i 160){\r\n if(num == true){\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxMove){\r\n jg = true;\r\n } \r\n else jg = false;\r\n }\r\n else{\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxMove){\r\n jg = true;\r\n } \r\n else jg = false;\r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n getDistance2(x1, y1, x2, y2,num) {\r\n var jg = false;\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 160){\r\n if(num == true){\r\n if(distance < GameData._instance.LEVEL_INFO[this.level-1].maxDistance) jg = true;\r\n else jg = false;\r\n }\r\n else{\r\n jg = true;\r\n }\r\n }\r\n return jg;\r\n }\r\n\r\n\r\n createBall(number,color,speed,repeat){\r\n let ball = null;\r\n if(color == 0)ball = cc.instantiate(this.qiu1);\r\n else if(color == 1)ball = cc.instantiate(this.qiu2);\r\n else if(color == 2)ball = cc.instantiate(this.qiu3);\r\n ball.parent = this.node.getChildByName(\"Sun\");\r\n ball.zIndex = this.now_Array.length - number;\r\n ball.setPosition(this.ball.x,this.ball.y);\r\n ball.getComponent(\"Sun\").init(number,color,speed,repeat);\r\n this.ball_Array.push(ball);\r\n }\r\n\r\n destroyLine() {\r\n for(let i =0; i< this.node.getChildByName(\"Line\").children.length;i++){\r\n if(this.node.getChildByName(\"Line\").children[i]){\r\n this.node.getChildByName(\"Line\").children[i].removeFromParent();\r\n this.node.getChildByName(\"Line\").children[i] = null;\r\n }\r\n }\r\n this.node.getChildByName(\"Line\").removeAllChildren();\r\n }\r\n\r\n createLine(start,end,time){\r\n let line = cc.instantiate(this.linePrefab);\r\n line.parent = this.node.getChildByName(\"Line\");\r\n line.setPosition(start.x,start.y);\r\n \r\n const dx = end.x - start.x;\r\n const dy = end.y - start.y;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n line.height = distance;\r\n line.getComponent(cc.Sprite).fillRange = 0;\r\n line.angle = -this.calculateAngle(start.x,start.y,end.x,end.y);\r\n cc.tween(line.getComponent(cc.Sprite))\r\n .to(time,{fillRange:1})\r\n .start();\r\n }\r\n\r\n calculateAngle(x1, y1, x2, y2) {\r\n var angle = Math.atan2(y2-y1,x2-x1)*180 / Math.PI - 90;\r\n return -angle;\r\n }\r\n\r\n calculateDistance(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 800) distance = 800;\r\n const time = distance/800 * 0.6;\r\n return time;\r\n }\r\n\r\n calculateDistance2(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 1200) distance = 1200;\r\n const time = distance/1200 * 1;\r\n return time;\r\n }\r\n\r\n calculateDistance3(x1, y1, x2, y2) {\r\n const dx = x2 - x1;\r\n const dy = y2 - y1;\r\n var distance = Math.sqrt(dx*dx + dy*dy);\r\n if(distance > 1200) distance = 1200;\r\n const time = distance/1200 * 1.5;\r\n return time;\r\n }\r\n\r\n //背景移动\r\n bgMove(type){\r\n let random = Math.random()*300 + 300;\r\n let posX = Math.random()*600 - 300;\r\n \r\n let y1 = this.bg1.y - random*type;\r\n // let y2 = this.bg2.y - random*type;\r\n let time1 = 0.7*(random/400);\r\n\r\n cc.tween(this.ball)\r\n .to(0.3,{scale:1.3})\r\n .to(time1,{x:posX})\r\n .start();\r\n\r\n cc.tween(this.bg1)\r\n .delay(0.3)\r\n .to(time1,{y:y1})\r\n .start();\r\n\r\n // cc.tween(this.bg2)\r\n // .delay(0.3)\r\n // .to(time1,{y:y2})\r\n // .start();\r\n\r\n setTimeout(() => {\r\n // if(this.over == false && GameData._instance.GM_INFO.custom == 0){\r\n // this.startGame();\r\n // }\r\n if(this.over == false){\r\n this.startGame();\r\n }\r\n \r\n }, time1*1500);\r\n }\r\n //时间格式转换\r\n getTimeMargin(second:number) {\r\n let total = 0;\r\n total = second;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n return m + ':' + miao\r\n }\r\n\r\n \r\n //如果是倒计时 调用此方法\r\n updateCountDownTime () {\r\n if (this.countTime > 0 && this.pause == false) {\r\n this.countTime -= 1;\r\n this.time.string = this.getTimeMargin(this.countTime);\r\n if(this.countTime < 5){\r\n cc.tween(this.time.node)\r\n .to(0.25,{scale:1.5,color:cc.color(255,0,0)})\r\n .to(0.25,{scale:1,color:cc.color(255,255,255)})\r\n .start()\r\n let over = this.node.getChildByName(\"Over\");\r\n cc.tween(over)\r\n .to(0.2,{opacity:255})\r\n .delay(0.1)\r\n .to(0.2,{opacity:0})\r\n .start();\r\n }\r\n if(this.countTime <= 0){\r\n this.begin = false;\r\n this.over = true;\r\n this.unschedule(this.updateCountDownTime);\r\n this.setLoss();\r\n var time = 0;\r\n \r\n // console.log(GameData._instance.GM_INFO.mean_Time,this.clickCount);\r\n if(this.clickCount > 0) time = parseInt(GameData._instance.GM_INFO.mean_Time/this.clickCount + \"\");\r\n GameData._instance.GM_INFO.mean_Time = parseInt(time/100 + \"\");\r\n GameData._instance.GM_INFO.mean_Time = GameData._instance.GM_INFO.mean_Time /10;\r\n // console.log( GameData._instance.GM_INFO.mean_Time,time);\r\n // debugger;\r\n if(time > 10000) time = (Math.random()*10+5)*100;\r\n this.setRank(time);\r\n }\r\n }\r\n }\r\n\r\n setData(){\r\n let data = GameData._instance.GAME_DATA;\r\n let matchId = this.getMatchId();\r\n console.log(matchId);\r\n let postData = {\r\n \"matchId\":matchId,\r\n \"data\": data\r\n };\r\n console.log(\"上传数据:\")\r\n HttpUtil.uploadUserLogData(postData,function(){})\r\n }\r\n\r\n getMatchId (){\r\n let matchId = cc.sys.localStorage.getItem(\"matchId\");\r\n\r\n if(matchId == \"undifend\" || matchId==null){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n let char = parseInt(matchId[10]);\r\n if(this.round == 1){\r\n char += 1;\r\n }\r\n matchId = matchId.slice(0, 10) + char + \"\";\r\n GameData._instance.GM_INFO.matchId = matchId;\r\n cc.sys.localStorage.setItem(\"matchId\",matchId);\r\n }\r\n }\r\n\r\n return matchId;\r\n }\r\n\r\n containsNanana(str) {\r\n return /na/i.test(str);\r\n }\r\n\r\n setMatchId (){\r\n // 定义包含可用字符的字符集\r\n const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n // 创建一个数组以保存随机字符\r\n const uuidArray = [];\r\n \r\n // 循环10次 生成10位的UUID\r\n for (let i = 0; i < 10; i++) {\r\n // 生成随机索引,范围是字符集的长度\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n // 从字符集中获取随机字符\r\n const randomChar = characters.charAt(randomIndex);\r\n // 将字符添加到数组中\r\n uuidArray.push(randomChar);\r\n }\r\n \r\n let data = uuidArray.join('') + 1 + \"\";\r\n cc.sys.localStorage.setItem(\"matchNumber\",1);\r\n cc.sys.localStorage.setItem(\"matchId\",data);\r\n GameData._instance.GM_INFO.matchId = data;\r\n return data;\r\n }\r\n\r\n setRank(time){\r\n let postData = {\r\n \"type\":1,\r\n \"reactionTime\": time,\r\n \"totalSunCount\": GameData._instance.GM_INFO.total,\r\n \"success\": GameData._instance.GM_INFO.success\r\n \r\n };\r\n // console.log(postData);\r\n HttpUtil.rankData(1,function(){},postData);\r\n this.node.getChildByName(\"GameOver\").active = true;\r\n this.node.getChildByName(\"GameOver\").opacity = 0;\r\n cc.tween(this.node.getChildByName(\"GameOver\"))\r\n .to(0.4,{opacity:255})\r\n .delay(2)\r\n .to(0.4,{opacity:50})\r\n .call(() =>{\r\n cc.director.loadScene(\"OverScene\");\r\n })\r\n .start()\r\n \r\n }\r\n\r\n outPut(){\r\n\r\n let data = GameData._instance.CLICK_DATA;\r\n GameData._instance.GAME_DATA = [];\r\n\r\n GameData._instance.GAME_DATA.push(GameData._instance.CLICK_DATA);\r\n GameData._instance.CLICK_init();\r\n }\r\n\r\n showNumber(){\r\n if(this.show == false) this.show = true;\r\n else if(this.show == true) this.show = false;\r\n for(let i=0; i 10) { + GameData_1.default._instance.GM_INFO.mean_Time = (parseInt(Math.random() * 10 + "") + 5) / 10; + } this.time.string = GameData_1.default._instance.GM_INFO.mean_Time + "s"; this.listData = []; this.selfData = null; diff --git a/temp/quick-scripts/src/assets/Script/GameOver.js.map b/temp/quick-scripts/src/assets/Script/GameOver.js.map index 0ef7625..6eca424 100644 --- a/temp/quick-scripts/src/assets/Script/GameOver.js.map +++ b/temp/quick-scripts/src/assets/Script/GameOver.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\GameOver.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport GameData from \"./GameData\";\r\nimport List from \"./ListView/List\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\nimport Rq from \"./crypto/serverAPI\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n\r\n @property(cc.Label)\r\n count: cc.Label = null;\r\n\r\n @property(cc.Label)\r\n time: cc.Label = null;\r\n\r\n @property(cc.Node)\r\n selfNode: cc.Node = null;\r\n @property(cc.Node)\r\n one: cc.Node = null;\r\n @property(cc.Node)\r\n two: cc.Node = null;\r\n @property(cc.Node)\r\n three: cc.Node = null;\r\n @property(cc.Node)\r\n four: cc.Node = null;\r\n @property(cc.Node)\r\n five: cc.Node = null;\r\n\r\n listData: any;\r\n selfData: any;\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n // onLoad () {}\r\n\r\n start () {\r\n this.count.string = GameData._instance.GM_INFO.total;\r\n this.time.string = GameData._instance.GM_INFO.mean_Time + \"s\";\r\n this.listData = [];\r\n this.selfData = null;\r\n this.one.active = false;\r\n this.two.active = false;\r\n this.three.active = false;\r\n this.four.active = false;\r\n this.five.active = false;\r\n // this.setData();\r\n this.getRank();\r\n }\r\n\r\n\r\n \r\n\r\n success(data){\r\n }\r\n\r\n\r\n\r\n back(){\r\n cc.director.loadScene(\"RankScene\");\r\n }\r\n\r\n again(){\r\n cc.director.loadScene(\"GameScene\");\r\n }\r\n\r\n getRank(){\r\n let postData = {\r\n \"page\":1,\r\n \"pageSize\":100\r\n }; \r\n HttpUtil.rankData(2,this.getRankData.bind(this),postData);\r\n }\r\n\r\n getRankData(data){\r\n if(data){\r\n this.listData = data.data.list;\r\n this.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n if(this.selfData.nickName.length > 4){\r\n this.selfData.nickName= this.selfData.nickName.substring(0,4) + \"...\"\r\n }\r\n this.selfNode.getChildByName(\"name\").getComponent(cc.Label).string = this.selfData.nickName;\r\n this.selfNode.getChildByName(\"total\").getComponent(cc.Label).string = this.selfData.totalSunCount;\r\n this.setPic(this.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),this.selfData.pic);\r\n for(let i=0;i<=this.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:this.listData[i].nickName, total:this.listData[i].totalSunCount, pic:this.listData[i].pic});\r\n if(GameData._instance.GM_INFO.userId == this.listData[i].userId){\r\n self = true;\r\n this.selfNode.getChildByName(\"rank\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (this.listData.length-1) && self == false){\r\n this.selfNode.getChildByName(\"rank\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n if(i<5) this.setRank(i,this.listData[i]);\r\n }\r\n\r\n }\r\n }\r\n\r\n setRank(num,data){\r\n var hitNode = null;\r\n if(num == 0){\r\n hitNode = this.one;\r\n }\r\n else if(num == 1){\r\n hitNode = this.two;\r\n }\r\n else if(num == 2){\r\n hitNode = this.three;\r\n }\r\n else if(num == 3){\r\n hitNode = this.four;\r\n }\r\n else if(num == 4){\r\n hitNode = this.five;\r\n }\r\n if(hitNode){\r\n hitNode.active = true;\r\n if(data.nickName.length > 4){\r\n data.nickName= data.nickName.substring(0,4) + \"...\"\r\n }\r\n hitNode.getChildByName(\"name\").getComponent(cc.Label).string = data.nickName;\r\n hitNode.getChildByName(\"total\").getComponent(cc.Label).string = data.totalSunCount;\r\n this.setPic(hitNode.getChildByName(\"pic\").getChildByName(\"icon\"),data.pic);\r\n }\r\n\r\n }\r\n\r\n public setPic(node,pic){\r\n node.active = false;\r\n let url = pic;\r\n setTimeout(() => {\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n \r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n node.active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n }, 100);\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n node.active = true;\r\n node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n console.log(err,texture)\r\n }\r\n })\r\n }\r\n\r\n // update (dt) {}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\GameOver.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport GameData from \"./GameData\";\r\nimport List from \"./ListView/List\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\nimport Rq from \"./crypto/serverAPI\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n\r\n @property(cc.Label)\r\n count: cc.Label = null;\r\n\r\n @property(cc.Label)\r\n time: cc.Label = null;\r\n\r\n @property(cc.Node)\r\n selfNode: cc.Node = null;\r\n @property(cc.Node)\r\n one: cc.Node = null;\r\n @property(cc.Node)\r\n two: cc.Node = null;\r\n @property(cc.Node)\r\n three: cc.Node = null;\r\n @property(cc.Node)\r\n four: cc.Node = null;\r\n @property(cc.Node)\r\n five: cc.Node = null;\r\n\r\n listData: any;\r\n selfData: any;\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n // onLoad () {}\r\n\r\n start () {\r\n this.count.string = GameData._instance.GM_INFO.total;\r\n if(GameData._instance.GM_INFO.mean_Time > 10){\r\n GameData._instance.GM_INFO.mean_Time = (parseInt(Math.random()*10+\"\")+5)/10\r\n }\r\n this.time.string = GameData._instance.GM_INFO.mean_Time + \"s\";\r\n this.listData = [];\r\n this.selfData = null;\r\n this.one.active = false;\r\n this.two.active = false;\r\n this.three.active = false;\r\n this.four.active = false;\r\n this.five.active = false;\r\n // this.setData();\r\n this.getRank();\r\n }\r\n\r\n\r\n \r\n\r\n success(data){\r\n }\r\n\r\n\r\n\r\n back(){\r\n cc.director.loadScene(\"RankScene\");\r\n }\r\n\r\n again(){\r\n cc.director.loadScene(\"GameScene\");\r\n }\r\n\r\n getRank(){\r\n let postData = {\r\n \"page\":1,\r\n \"pageSize\":100\r\n }; \r\n HttpUtil.rankData(2,this.getRankData.bind(this),postData);\r\n }\r\n\r\n getRankData(data){\r\n if(data){\r\n this.listData = data.data.list;\r\n this.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n if(this.selfData.nickName.length > 4){\r\n this.selfData.nickName= this.selfData.nickName.substring(0,4) + \"...\"\r\n }\r\n this.selfNode.getChildByName(\"name\").getComponent(cc.Label).string = this.selfData.nickName;\r\n this.selfNode.getChildByName(\"total\").getComponent(cc.Label).string = this.selfData.totalSunCount;\r\n this.setPic(this.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),this.selfData.pic);\r\n for(let i=0;i<=this.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:this.listData[i].nickName, total:this.listData[i].totalSunCount, pic:this.listData[i].pic});\r\n if(GameData._instance.GM_INFO.userId == this.listData[i].userId){\r\n self = true;\r\n this.selfNode.getChildByName(\"rank\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (this.listData.length-1) && self == false){\r\n this.selfNode.getChildByName(\"rank\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n if(i<5) this.setRank(i,this.listData[i]);\r\n }\r\n\r\n }\r\n }\r\n\r\n setRank(num,data){\r\n var hitNode = null;\r\n if(num == 0){\r\n hitNode = this.one;\r\n }\r\n else if(num == 1){\r\n hitNode = this.two;\r\n }\r\n else if(num == 2){\r\n hitNode = this.three;\r\n }\r\n else if(num == 3){\r\n hitNode = this.four;\r\n }\r\n else if(num == 4){\r\n hitNode = this.five;\r\n }\r\n if(hitNode){\r\n hitNode.active = true;\r\n if(data.nickName.length > 4){\r\n data.nickName= data.nickName.substring(0,4) + \"...\"\r\n }\r\n hitNode.getChildByName(\"name\").getComponent(cc.Label).string = data.nickName;\r\n hitNode.getChildByName(\"total\").getComponent(cc.Label).string = data.totalSunCount;\r\n this.setPic(hitNode.getChildByName(\"pic\").getChildByName(\"icon\"),data.pic);\r\n }\r\n\r\n }\r\n\r\n public setPic(node,pic){\r\n node.active = false;\r\n let url = pic;\r\n setTimeout(() => {\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n \r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n node.active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n }, 100);\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n node.active = true;\r\n node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n console.log(err,texture)\r\n }\r\n })\r\n }\r\n\r\n // update (dt) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Helloworld.js b/temp/quick-scripts/src/assets/Script/Helloworld.js index e3838ae..9c938e6 100644 --- a/temp/quick-scripts/src/assets/Script/Helloworld.js +++ b/temp/quick-scripts/src/assets/Script/Helloworld.js @@ -38,6 +38,7 @@ var Helloworld = /** @class */ (function (_super) { return _this; } Helloworld.prototype.onLoad = function () { + this.Player.getChildByName("rank").active = false; this.rankList = cc.find("ScrollView", this.node).getComponent(List_1.default); this.listData = []; this.selfData = null; @@ -46,11 +47,12 @@ var Helloworld = /** @class */ (function (_super) { this.selfNode.opacity = 0; }; Helloworld.prototype.start = function () { + this.Player.active = false; this.getRank(); }; Helloworld.prototype.getRankData = function (data) { if (data) { - console.log(data); + // console.log(data); this.listData = data.data.list; this.selfData = data.data.info; var rankData = []; @@ -88,6 +90,8 @@ var Helloworld = /** @class */ (function (_super) { // this.selfNode.getChildByName("four").active = true; } this.selfNode.opacity = 255; + if (this.selfData.totalSunCount == 0) + this.selfNode.opacity = 0; } }; Helloworld.prototype.backClick = function () { @@ -96,19 +100,34 @@ var Helloworld = /** @class */ (function (_super) { Helloworld.prototype.playerAction = function () { var _this = this; //-254 377 210 453 + this.Player.getChildByName("rank").active = false; var time = 1; this.tween = cc.tween(this.Player) .to(2, { position: cc.v3(210, 453, 0) }) + .call(function () { + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }) .start(); time = (this.listData.length - this.rankNumber) / this.listData.length; if (this.listData.length >= 99) { if (this.rankNumber >= 99) { time = (Math.random() * 49 + 1) / 100; + var matchId = cc.sys.localStorage.getItem("matchNumber"); + if (matchId == null || matchId == undefined) { + time = 0; + } } } + else { + } setTimeout(function () { if (_this.tween) _this.tween.stop(); + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; }, time * 2000); }; Helloworld.prototype.getRank = function () { @@ -148,6 +167,8 @@ var Helloworld = /** @class */ (function (_super) { }; Helloworld.prototype.setPic2 = function (pic) { var _this = this; + this.Player.active = true; + this.Player.opacity = 0; this.Player.getChildByName("mask").getChildByName("icon").active = false; this.Player.getChildByName("mask").getChildByName("phone").active = false; var url = pic; @@ -166,6 +187,8 @@ var Helloworld = /** @class */ (function (_super) { var self = this; cc.assetManager.loadRemote(url, { ext: '.jpg' }, function (err, texture) { if (texture) { + _this.Player.opacity = 255; + _this.Player.getChildByName("mask").getChildByName("icon").active = false; _this.Player.getChildByName("mask").getChildByName("phone").active = true; _this.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) .spriteFrame = new cc.SpriteFrame(texture); @@ -175,7 +198,9 @@ var Helloworld = /** @class */ (function (_super) { // console.log("设置头像成功",err); } else { + _this.Player.opacity = 255; // console.log("设置头像失败",url); + _this.Player.getChildByName("mask").getChildByName("icon").active = true; console.log(err, texture); setTimeout(function () { _this.playerAction(); diff --git a/temp/quick-scripts/src/assets/Script/Helloworld.js.map b/temp/quick-scripts/src/assets/Script/Helloworld.js.map index 3647798..5360d5e 100644 --- a/temp/quick-scripts/src/assets/Script/Helloworld.js.map +++ b/temp/quick-scripts/src/assets/Script/Helloworld.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\Helloworld.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import GameData from \"./GameData\";\r\nimport List from \"./ListView/List\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\n// import { apiSign } from \"./crypto/sign\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class Helloworld extends cc.Component {\r\n\r\n @property(cc.Node)\r\n Player: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n selfNode: cc.Node = null;\r\n\r\n @property(cc.Sprite)\r\n phone: cc.Sprite = null;\r\n\r\n private rankList: List; //排行榜\r\n tween: cc.Tween;\r\n listData: any;\r\n selfData: any;\r\n rankNumber: number;\r\n rankTotal: number;\r\n\r\n onLoad() {\r\n this.rankList = cc.find(\"ScrollView\", this.node).getComponent(List);\r\n this.listData = [];\r\n this.selfData = null;\r\n this.rankNumber = 100;\r\n this.rankTotal= 100;\r\n this.selfNode.opacity = 0;\r\n }\r\n \r\n start() {\r\n this.getRank();\r\n }\r\n\r\n getRankData(data){\r\n if(data){\r\n console.log(data);\r\n this.listData = data.data.list;\r\n this.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n for(let i=0;i<=this.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:this.listData[i].nickName, total:this.listData[i].totalSunCount, pic:this.listData[i].pic});\r\n if(GameData._instance.GM_INFO.userId == this.listData[i].userId){\r\n self = true;\r\n this.rankNumber = i;\r\n this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (this.listData.length-1) && self == false){\r\n this.rankNumber = i;\r\n this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n }\r\n this.rankList.setData(rankData);\r\n if(this.selfData.nickName.length > 6){\r\n this.selfData.nickName= this.selfData.nickName.substring(0,6) + \"...\"\r\n }\r\n this.selfNode.getChildByName(\"nameLab\").getComponent(cc.Label).string = this.selfData.nickName;\r\n this.selfNode.getChildByName(\"totalLab\").getComponent(cc.Label).string = this.selfData.totalSunCount;\r\n this.setPic(this.selfData.pic);\r\n this.setPic2(this.selfData.pic);\r\n if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"1\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n }\r\n else if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"2\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n }\r\n else if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"3\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n }\r\n else{\r\n // this.selfNode.getChildByName(\"four\").active = true;\r\n }\r\n this.selfNode.opacity = 255;\r\n\r\n }\r\n }\r\n backClick(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n\r\n playerAction(){\r\n //-254 377 210 453\r\n let time = 1;\r\n this.tween = cc.tween(this.Player)\r\n .to(2,{position:cc.v3(210,453,0)})\r\n .start();\r\n time = (this.listData.length - this.rankNumber)/this.listData.length;\r\n if(this.listData.length >= 99){\r\n if(this.rankNumber >= 99){\r\n time = (Math.random()*49+1)/100\r\n }\r\n }\r\n\r\n\r\n setTimeout(() => {\r\n if(this.tween)this.tween.stop();\r\n }, time*2000);\r\n\r\n }\r\n\r\n getRank(){\r\n let postData = {\r\n \"page\":1,\r\n \"pageSize\":100\r\n }; \r\n HttpUtil.rankData(2,this.getRankData.bind(this),postData);\r\n }\r\n\r\n public setPic(pic){\r\n this.phone.node.parent.getChildByName(\"icon\").active = false;\r\n this.phone.node.active = false;\r\n let url = pic;\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n this.phone.node.parent.getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n var self = this;\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n this.phone.node.active = true;\r\n self.phone.spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n console.log(err,texture)\r\n }\r\n })\r\n }\r\n\r\n public setPic2(pic){\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = false;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = false;\r\n let url = pic;\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n var self = this;\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = true;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").getComponent(cc.Sprite)\r\n .spriteFrame = new cc.SpriteFrame(texture);\r\n setTimeout(() => {\r\n this.playerAction();\r\n }, 500);\r\n // console.log(\"设置头像成功\",err);\r\n }\r\n else{\r\n // console.log(\"设置头像失败\",url);\r\n console.log(err,texture)\r\n setTimeout(() => {\r\n this.playerAction();\r\n }, 500);\r\n }\r\n })\r\n }\r\n\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\Helloworld.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import GameData from \"./GameData\";\r\nimport List from \"./ListView/List\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\n// import { apiSign } from \"./crypto/sign\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class Helloworld extends cc.Component {\r\n\r\n @property(cc.Node)\r\n Player: cc.Node = null;\r\n\r\n @property(cc.Node)\r\n selfNode: cc.Node = null;\r\n\r\n @property(cc.Sprite)\r\n phone: cc.Sprite = null;\r\n\r\n private rankList: List; //排行榜\r\n tween: cc.Tween;\r\n listData: any;\r\n selfData: any;\r\n rankNumber: number;\r\n rankTotal: number;\r\n\r\n onLoad() {\r\n this.Player.getChildByName(\"rank\").active = false;\r\n this.rankList = cc.find(\"ScrollView\", this.node).getComponent(List);\r\n this.listData = [];\r\n this.selfData = null;\r\n this.rankNumber = 100;\r\n this.rankTotal= 100;\r\n this.selfNode.opacity = 0;\r\n }\r\n \r\n start() {\r\n this.Player.active = false;\r\n this.getRank();\r\n }\r\n\r\n getRankData(data){\r\n if(data){\r\n console.log(data);\r\n this.listData = data.data.list;\r\n this.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n for(let i=0;i<=this.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:this.listData[i].nickName, total:this.listData[i].totalSunCount, pic:this.listData[i].pic});\r\n if(GameData._instance.GM_INFO.userId == this.listData[i].userId){\r\n self = true;\r\n this.rankNumber = i;\r\n this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (this.listData.length-1) && self == false){\r\n this.rankNumber = i;\r\n this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n }\r\n this.rankList.setData(rankData);\r\n if(this.selfData.nickName.length > 6){\r\n this.selfData.nickName= this.selfData.nickName.substring(0,6) + \"...\"\r\n }\r\n this.selfNode.getChildByName(\"nameLab\").getComponent(cc.Label).string = this.selfData.nickName;\r\n this.selfNode.getChildByName(\"totalLab\").getComponent(cc.Label).string = this.selfData.totalSunCount;\r\n this.setPic(this.selfData.pic);\r\n this.setPic2(this.selfData.pic);\r\n if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"1\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n }\r\n else if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"2\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n }\r\n else if(this.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string == \"3\"){\r\n this.selfNode.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n }\r\n else{\r\n // this.selfNode.getChildByName(\"four\").active = true;\r\n }\r\n this.selfNode.opacity = 255;\r\n\r\n }\r\n }\r\n backClick(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n\r\n playerAction(){\r\n //-254 377 210 453\r\n this.Player.getChildByName(\"rank\").active = false;\r\n\r\n let time = 1;\r\n this.tween = cc.tween(this.Player)\r\n .to(2,{position:cc.v3(210,453,0)})\r\n .call(() =>{\r\n this.Player.getChildByName(\"rank\").active = true;\r\n this.Player.getChildByName(\"rank\").getChildByName(\"number\")\r\n .getComponent(cc.Label).string = parseInt(time*100 + \"\") + \"%\";\r\n })\r\n .start();\r\n time = (this.listData.length - this.rankNumber)/this.listData.length;\r\n if(this.listData.length >= 99){\r\n if(this.rankNumber >= 99){\r\n time = (Math.random()*49+1)/100\r\n var matchId = cc.sys.localStorage.getItem(\"matchNumber\");\r\n if(matchId == null || matchId == undefined){\r\n time = 0;\r\n }\r\n }\r\n }\r\n else{\r\n\r\n }\r\n\r\n \r\n\r\n setTimeout(() => {\r\n if(this.tween)this.tween.stop();\r\n this.Player.getChildByName(\"rank\").active = true;\r\n this.Player.getChildByName(\"rank\").getChildByName(\"number\")\r\n .getComponent(cc.Label).string = parseInt(time*100 + \"\") + \"%\";\r\n }, time*2000);\r\n\r\n }\r\n\r\n getRank(){\r\n let postData = {\r\n \"page\":1,\r\n \"pageSize\":100\r\n }; \r\n HttpUtil.rankData(2,this.getRankData.bind(this),postData);\r\n }\r\n\r\n public setPic(pic){\r\n this.phone.node.parent.getChildByName(\"icon\").active = false;\r\n this.phone.node.active = false;\r\n let url = pic;\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n this.phone.node.parent.getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n var self = this;\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n this.phone.node.active = true;\r\n self.phone.spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n console.log(err,texture)\r\n }\r\n })\r\n }\r\n\r\n public setPic2(pic){\r\n this.Player.active = true;\r\n this.Player.opacity = 0;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = false;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = false;\r\n let url = pic;\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n var self = this;\r\n cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n this.Player.opacity = 255;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = false;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = true;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").getComponent(cc.Sprite)\r\n .spriteFrame = new cc.SpriteFrame(texture);\r\n setTimeout(() => {\r\n this.playerAction();\r\n }, 500);\r\n // console.log(\"设置头像成功\",err);\r\n }\r\n else{\r\n this.Player.opacity = 255;\r\n // console.log(\"设置头像失败\",url);\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = true;\r\n console.log(err,texture)\r\n setTimeout(() => {\r\n this.playerAction();\r\n }, 500);\r\n }\r\n })\r\n }\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Load.js b/temp/quick-scripts/src/assets/Script/Load.js index 2c5740d..397f17b 100644 --- a/temp/quick-scripts/src/assets/Script/Load.js +++ b/temp/quick-scripts/src/assets/Script/Load.js @@ -31,6 +31,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; var GameData_1 = require("./GameData"); +var Storage_1 = require("./Storage"); +// import {StorageMessage} from "./StorageMessage"; // import { apiSign } from "./crypto/sign"; var NewClass = /** @class */ (function (_super) { __extends(NewClass, _super); @@ -42,12 +44,33 @@ var NewClass = /** @class */ (function (_super) { // update (dt) {} } NewClass.prototype.start = function () { + var userId = Storage_1.StorageMessage.getStorage("user"); + if (userId == "undifend" || userId == null) { + this.setId(); + } + else { + var data = Storage_1.StorageMessage.getStorage("user"); + data = this.getId(data); + var timestamp = parseInt(new Date().getTime() / 1000 + ""); + if ((timestamp - data[2]) > 86400) { + this.setId(); + return; + } + GameData_1.default._instance.GM_INFO.userId = data[1]; + GameData_1.default._instance.GM_INFO.userId = parseInt(GameData_1.default._instance.GM_INFO.userId); + } + }; + NewClass.prototype.setId = function () { GameData_1.default._instance.GM_INFO.userId = this.getUserId(); if (GameData_1.default._instance.GM_INFO.userId == null) { - var url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=http://train.sparkus.cn/test/Sun_moves/"; + var url = "http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=" + location.href; window.location.href = url; } else { + var timestamp = parseInt(new Date().getTime() / 1000 + ""); + var idTemp = "gameId=" + GameData_1.default._instance.GM_INFO.gameId + + "?userId= " + GameData_1.default._instance.GM_INFO.userId + "?time=" + timestamp; + Storage_1.StorageMessage.setStorage("user", idTemp); GameData_1.default._instance.GM_INFO.userId = parseInt(GameData_1.default._instance.GM_INFO.userId); } }; @@ -70,13 +93,28 @@ var NewClass = /** @class */ (function (_super) { arr.map(function (item) { arr2_1.push(item.split("=")[1]); }); - GameData_1.default._instance.GM_INFO.userId = arr2_1[0] + ""; + // GameData._instance.GM_INFO.userId = arr2[0] + ""; return arr2_1[0]; } else { return null; } }; + NewClass.prototype.getId = function (str) { + var pathStr = str; + var arr = pathStr.split("?"); + if (pathStr.length >= 0 && arr.length > 0) { + var arr2_2 = []; + arr.map(function (item) { + arr2_2.push(item.split("=")[1]); + }); + // GameData._instance.GM_INFO.userId = arr2[1] + ""; + return arr2_2; + } + else { + return null; + } + }; NewClass.prototype.startGame = function () { GameData_1.default._instance.GM_INFO.custom = 0; cc.director.loadScene("GuideScene"); diff --git a/temp/quick-scripts/src/assets/Script/Load.js.map b/temp/quick-scripts/src/assets/Script/Load.js.map index 8bd8b65..2fd6cb9 100644 --- a/temp/quick-scripts/src/assets/Script/Load.js.map +++ b/temp/quick-scripts/src/assets/Script/Load.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\Load.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\nconst {ccclass, property, requireComponent} = cc._decorator;\r\nimport GameData from \"./GameData\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\nimport Rq from \"./crypto/serverAPI\";\r\n// import { apiSign } from \"./crypto/sign\";\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n\r\n\r\n start () {\r\n GameData._instance.GM_INFO.userId = this.getUserId();\r\n if(GameData._instance.GM_INFO.userId == null){\r\n let url = \"http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=http://train.sparkus.cn/test/Sun_moves/\";\r\n window.location.href = url;\r\n }\r\n else{\r\n GameData._instance.GM_INFO.userId = parseInt(GameData._instance.GM_INFO.userId);\r\n }\r\n \r\n }\r\n\r\n createTexture(){\r\n let url = \"http://static.sparkus.cn/shoot-sun/assets/resources/native/7a/7a8b41ad-9425-44e2-8f55-7740f12b0e0a.jpg\";\r\n cc.assetManager.loadRemote(url, (err, texture:cc.Texture2D) => {\r\n console.log(err,texture)\r\n if(texture){\r\n var sprite = this.node.getChildByName(\"icon\").getComponent(cc.Sprite);\r\n sprite.spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n })\r\n }\r\n\r\n private getUserId() {\r\n let pathStr = window.location.search;\r\n\r\n let arr=pathStr.split(\"&\");\r\n if (pathStr.length>= 0&&arr.length>0) {\r\n let arr2=[];\r\n arr.map(item=>{\r\n arr2.push(item.split(\"=\")[1])\r\n })\r\n GameData._instance.GM_INFO.userId = arr2[0] + \"\";\r\n return arr2[0];\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n startGame(){\r\n GameData._instance.GM_INFO.custom = 0;\r\n cc.director.loadScene(\"GuideScene\");\r\n }\r\n \r\n clickBtn(event,data){\r\n GameData._instance.GM_INFO.custom = parseInt(data);\r\n cc.director.loadScene(\"GameScene\");\r\n } \r\n\r\n openLevel(){\r\n this.node.getChildByName(\"Level\").active = true;\r\n }\r\n\r\n closeBtn(){\r\n this.node.getChildByName(\"Level\").active = false;\r\n }\r\n\r\n back(data){\r\n // debugger;\r\n }\r\n\r\n openBtn(){\r\n GameData._instance.GM_INFO.custom = 0;\r\n cc.director.loadScene(\"GuideScene\");\r\n }\r\n\r\n openRank(){\r\n cc.director.loadScene(\"RankScene\");\r\n\r\n }\r\n \r\n // update (dt) {}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\Load.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\nconst {ccclass, property, requireComponent} = cc._decorator;\r\nimport GameData from \"./GameData\";\r\nimport HttpUtil from \"./crypto/serverAPI\";\r\nimport Rq from \"./crypto/serverAPI\";\r\n// import { apiSign } from \"./crypto/sign\";\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n\r\n @property(cc.Label)\r\n label: cc.Label = null;\r\n\r\n @property\r\n text: string = 'hello';\r\n\r\n\r\n start () {\r\n let userId = \"gameId=100009?userId=200139?time=1000\";\r\n\r\n let temp = this.getId(userId);\r\n debugger;\r\n // let userId = cc.sys.localStorage.getItem(\"userId\");\r\n // if(userId == \"undifend\" || userId==null){\r\n // GameData._instance.GM_INFO.userId = this.getUserId();\r\n // if(GameData._instance.GM_INFO.userId == null){\r\n // let url = \"http://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=\"+location.href;\r\n // window.location.href = url;\r\n // }\r\n // else{\r\n // GameData._instance.GM_INFO.userId = GameData._instance.GM_INFO.userId;\r\n // cc.sys.localStorage.setItem(\"userId\",GameData._instance.GM_INFO.userId);\r\n // }\r\n // }\r\n // else{\r\n // GameData._instance.GM_INFO.userId = parseInt(userId);\r\n // }\r\n \r\n }\r\n\r\n createTexture(){\r\n let url = \"http://static.sparkus.cn/shoot-sun/assets/resources/native/7a/7a8b41ad-9425-44e2-8f55-7740f12b0e0a.jpg\";\r\n cc.assetManager.loadRemote(url, (err, texture:cc.Texture2D) => {\r\n console.log(err,texture)\r\n if(texture){\r\n var sprite = this.node.getChildByName(\"icon\").getComponent(cc.Sprite);\r\n sprite.spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n })\r\n }\r\n\r\n private getUserId() {\r\n let pathStr = window.location.search;\r\n\r\n let arr=pathStr.split(\"&\");\r\n if (pathStr.length>= 0&&arr.length>0) {\r\n let arr2=[];\r\n arr.map(item=>{\r\n arr2.push(item.split(\"=\")[1])\r\n })\r\n GameData._instance.GM_INFO.userId = arr2[0] + \"\";\r\n return arr2[0];\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n private getId(str) {\r\n let pathStr = str;\r\n\r\n let arr=pathStr.split(\"&\");\r\n if (pathStr.length>= 0&&arr.length>0) {\r\n let arr2=[];\r\n arr.map(item=>{\r\n arr2.push(item.split(\"=\")[1])\r\n })\r\n GameData._instance.GM_INFO.userId = arr2[0] + \"\";\r\n return arr2[0];\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n startGame(){\r\n GameData._instance.GM_INFO.custom = 0;\r\n cc.director.loadScene(\"GuideScene\");\r\n }\r\n \r\n clickBtn(event,data){\r\n GameData._instance.GM_INFO.custom = parseInt(data);\r\n cc.director.loadScene(\"GameScene\");\r\n } \r\n\r\n openLevel(){\r\n this.node.getChildByName(\"Level\").active = true;\r\n }\r\n\r\n closeBtn(){\r\n this.node.getChildByName(\"Level\").active = false;\r\n }\r\n\r\n back(data){\r\n // debugger;\r\n }\r\n\r\n openBtn(){\r\n GameData._instance.GM_INFO.custom = 0;\r\n cc.director.loadScene(\"GuideScene\");\r\n }\r\n\r\n openRank(){\r\n cc.director.loadScene(\"RankScene\");\r\n\r\n }\r\n \r\n // update (dt) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Storage.js b/temp/quick-scripts/src/assets/Script/Storage.js index 796eadb..fa4fb60 100644 --- a/temp/quick-scripts/src/assets/Script/Storage.js +++ b/temp/quick-scripts/src/assets/Script/Storage.js @@ -1,41 +1,38 @@ "use strict"; -cc._RF.push(module, 'b5d92kgCRlKu5IYKnaGPgoa', 'Storage'); -// Script/Storage.js +cc._RF.push(module, '7cf8cMT5zJA0ZU4Gp0JcL8v', 'Storage'); +// Script/Storage.ts "use strict"; - +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StorageMessage = void 0; // var jequry = require("jquery"); // var coinManager = require("coinManager"); var StorageMessage = { - getStorage: function getStorage(key) { - var result = null; - - if (cc.sys.localStorage.getItem(key)) { - var result = cc.sys.localStorage.getItem(key); - } - - if (result) { - result = JSON.parse(result); - } - - return result; - }, - setStorage: function setStorage(key, value) { - //主动拉起分享接口 - var temp = JSON.stringify(value); - cc.sys.localStorage.setItem(key, temp); // debugger; - // var temp = cc.sys.localStorage.getItem(key); - // debugger; - }, - removeStorage: function removeStorage(key) { - //主动删除消息接口 - if (cc.sys.localStorage.getItem(key)) { - cc.sys.localStorage.removeItem(key); - } - } -}; -module.exports = { - StorageMessage: StorageMessage + getStorage: function (key) { + var result = null; + if (cc.sys.localStorage.getItem(key)) { + var result = cc.sys.localStorage.getItem(key); + } + if (result) { + result = JSON.parse(result); + } + return result; + }, + setStorage: function (key, value) { + //主动拉起分享接口 + var temp = JSON.stringify(value); + cc.sys.localStorage.setItem(key, temp); + // debugger; + // var temp = cc.sys.localStorage.getItem(key); + // debugger; + }, + removeStorage: function (key) { + //主动删除消息接口 + if (cc.sys.localStorage.getItem(key)) { + cc.sys.localStorage.removeItem(key); + } + }, }; +exports.StorageMessage = StorageMessage; cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/crypto/serverAPI.js.map b/temp/quick-scripts/src/assets/Script/crypto/serverAPI.js.map index b781c0c..1c11437 100644 --- a/temp/quick-scripts/src/assets/Script/crypto/serverAPI.js.map +++ b/temp/quick-scripts/src/assets/Script/crypto/serverAPI.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\crypto\\serverAPI.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// import CryptoJS from \"crypto-js\";\n\n\nimport GameData from '../GameData';\nimport CryptoJS = require('./crypto-js.min.js'); //引用AES源码js\n\n// import axios from 'axios'\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class HttpUtil extends cc.Component {\n //排行榜type2为获取,type1为上传\n static async rankData(type,callback,data): Promise {\n data.gameId = GameData._instance.GM_INFO.gameId;\n data.userId = GameData._instance.GM_INFO.userId;\n const time = Math.floor((new Date().getTime()) / 1000)\n const url = apiSign(`/api/get/rank/data?gameId=${config.gameId}&dataType=${type}&time=${time}`, data)\n this.httpPost(url,data,callback);\n }\n \n static async uploadUserLogData(data,callback): Promise {\n data.gameId = GameData._instance.GM_INFO.gameId;\n data.userId = GameData._instance.GM_INFO.userId;\n const url = '/log/collect/data';\n this.httpPost(url,data,callback);\n }\n //暂时用不到\n static async getUserRecord(data,callback): Promise {\n data.gameId = GameData._instance.GM_INFO.gameId;\n data.userId = GameData._instance.GM_INFO.userId;\n const time = Math.floor((new Date().getTime()) / 1000)\n const url = apiSign(`/api/get/user/data?gameId=${config.gameId}&time=${time}`, data)\n this.httpPost(url,data,callback);\n }\n\n static httpPost(url,data,callBack){\n data.gameId = GameData._instance.GM_INFO.gameId;\n data.userId = GameData._instance.GM_INFO.userId;\n var urlData = \"http://dev.api.sparkus.cn\" + url;\n // console.log(\"params:\",JSON.stringify(data));\n let xhr = new XMLHttpRequest();\n xhr.open('POST', urlData);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4 && xhr.status == 200) {\n var data = xhr.responseText;\n if(!data){\n // console.log(\"初始化失败\");\n return;\n }\n var json = JSON.parse(data);\n // console.log('http success:' + json);\n callBack(json);\n }\n else{\n // var json = JSON.parse(data);\n // console.log('http fail:' + url);\n callBack(json);\n }\n };\n xhr.send(JSON.stringify(data));\n }\n\n static httpGet(url,callBack){\n var urlData = \"http://dev.api.sparkus.cn\" + url;\n console.log(urlData);\n let xhr = new XMLHttpRequest();\n xhr.open('GET', urlData);\n xhr.setRequestHeader('Content-Type', 'text/plain');\n \n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4 && xhr.status == 200) {\n var data = xhr.responseText;\n if(data){\n var json = JSON.parse(data);\n console.info('http success:' + json);\n callBack(json);\n }\n else callBack(data);\n }\n else{\n console.info('http fail:' + url);\n callBack(null);\n }\n };\n xhr.send();\n }\n}\n\nfunction responseHandler(response: { data: any }) {\n return response.data\n}\n// 响应拦截器\n// Rq.interceptors.response.use(responseHandler)\nconst config = {\n gameId: \"100009\",\n secretKey: \"CMNhOzBA\",\n EK:\"hui231%1\"\n};\n\ninterface CrypotoType {\n encryptByDES: any\n decryptByDES: any\n hmacSha256: any\n}\n \nclass Crypoto implements CrypotoType {\n // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致\n private keyHex = this.getHetKey()\n \n private getHetKey() {\n return CryptoJS.enc.Utf8.parse(config.EK);\n }\n\n /** DES加密 */\n encryptByDES(message: string, secret?: string) {\n if(!message) {\n return message\n }\n const key = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\n const encrypted = CryptoJS.DES.encrypt(message, key, {\n mode: CryptoJS.mode.ECB,\n padding: CryptoJS.pad.Pkcs7\n });\n return encrypted.toString()\n }\n\n /** DES解密 */\n decryptByDES(message: string, secret?: string) {\n const key = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\n\n const decrypted = CryptoJS.DES.decrypt({\n ciphertext: CryptoJS.enc.Base64.parse(message)\n }, key, {\n mode: CryptoJS.mode.ECB,\n padding: CryptoJS.pad.Pkcs7\n })\n\n return decrypted.toString(CryptoJS.enc.Utf8)\n }\n\n /** hmacSHA256加密 */\n hmacSha256(message: string, secret?: string) {\n const keyHex = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\n \n const hash = CryptoJS.HmacSHA256(message, keyHex);\n return hash.toString()\n }\n\n /** hmacSHA256验证 */\n verifyHmacSha256(message: string, signature: string) {\n const hash = CryptoJS.HmacSHA256(message, this.keyHex);\n return hash.toString() === signature\n }\n \n /** CBC加密 */\n encryptCBC(word: string) {\n if (!word) {\n return word;\n }\n const srcs = CryptoJS.enc.Utf8.parse(word);\n const encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, {\n iv: this.keyHex,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.ZeroPadding\n });\n return encrypted.toString(); \n }\n \n /** CBC解密 */\n decryptCBC(word: string) {\n if (!word) {\n return word;\n }\n const encryptedHexStr = CryptoJS.enc.Hex.parse(word);\n const srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);\n const decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, {\n iv: this.keyHex,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.ZeroPadding\n });\n const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);\n return decryptedStr.toString();\n }\n}\nconst fxCry = new Crypoto();\n\nfunction isEmpty(data) {\n return data === \"\" || data === null || data === undefined || data.length === 0 || JSON.stringify(data) == \"{}\"\n}\n\nfunction getQueryString(obj) {\n // 首先对对象的键进行排序并过滤空值\n const sortedKeys = Object.keys(obj).sort();\n const sortedObj = {};\n for (let i = 0; i < sortedKeys.length; i++) {\n if (isEmpty(obj[sortedKeys[i]])) {\n continue;\n }\n sortedObj[sortedKeys[i]] = obj[sortedKeys[i]];\n }\n \n // 然后将排序后的对象转换为查询字符串\n const params = [];\n for (const key in sortedObj) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(sortedObj[key])}`);\n }\n return params.join('&');\n}\n\n\n/**\n * 组装签名字符串\n * @param string url: 请求地址 \n * @param string postStr: post参数的a=1&b=2 \n * @returns \n */\n\nfunction genSignStr(url: string, postStr: string): string {\n let lessUrl = url.replace('?', '')\n lessUrl = lessUrl + \"&\" + postStr\n return encodeURIComponent(fxCry.hmacSha256(lessUrl))\n}\n// 对参数进行统一urlencode\nfunction urlencode(url: string): string {\n const [baseUrl, queryString] = url.split(\"?\", 2);\n const params = new URLSearchParams(queryString);\n return `${baseUrl}?${params.toString()}`;\n}\n\n/**\n * \n * @param url {string} 接口地址\n * @param params {object} 需要加密的参数对象\n */\nfunction apiSign(url: string, params = {}) {\n\n let convertUrl = url.trim()\n if (convertUrl.indexOf('?') === -1) {\n convertUrl += '?'\n }\n \n // 传入参数转换拼接字符串\n let postStr = getQueryString(params)\n \n const signedStr = genSignStr(convertUrl, postStr)\n const encryptStr = `sign=${signedStr}`\n\n let encryptSignStr = fxCry.encryptByDES(encryptStr, config.secretKey)\n encryptSignStr = encodeURIComponent(encryptSignStr)\n\n return `${urlencode(convertUrl)}&_p=${encryptSignStr}`\n}\n\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\crypto\\serverAPI.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// import CryptoJS from \"crypto-js\";\n\n\nimport GameData from '../GameData';\nimport CryptoJS = require('./crypto-js.min.js'); //引用AES源码js\n\n// import axios from 'axios'\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class HttpUtil extends cc.Component {\n //排行榜type2为获取,type1为上传\n static async rankData(type,callback,data): Promise {\n data.gameId = GameData._instance.GM_INFO.gameId;\n data.userId = GameData._instance.GM_INFO.userId;\n const time = Math.floor((new Date().getTime()) / 1000)\n const url = apiSign(`/api/get/rank/data?gameId=${config.gameId}&dataType=${type}&time=${time}`, data)\n this.httpPost(url,data,callback);\n }\n \n static async uploadUserLogData(data,callback): Promise {\n data.gameId = GameData._instance.GM_INFO.gameId;\n data.userId = GameData._instance.GM_INFO.userId;\n const url = '/log/collect/data';\n this.httpPost(url,data,callback);\n }\n //暂时用不到\n static async getUserRecord(data,callback): Promise {\n data.gameId = GameData._instance.GM_INFO.gameId;\n data.userId = GameData._instance.GM_INFO.userId;\n const time = Math.floor((new Date().getTime()) / 1000)\n const url = apiSign(`/api/get/user/data?gameId=${config.gameId}&time=${time}`, data)\n this.httpPost(url,data,callback);\n }\n\n static httpPost(url,data,callBack){\n data.gameId = GameData._instance.GM_INFO.gameId;\n data.userId = GameData._instance.GM_INFO.userId;\n var urlData = \"http://api.sparkus.cn\" + url;\n // console.log(\"params:\",JSON.stringify(data));\n let xhr = new XMLHttpRequest();\n xhr.open('POST', urlData);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4 && xhr.status == 200) {\n var data = xhr.responseText;\n if(!data){\n // console.log(\"初始化失败\");\n return;\n }\n var json = JSON.parse(data);\n // console.log('http success:' + json);\n callBack(json);\n }\n else{\n // var json = JSON.parse(data);\n // console.log('http fail:' + url);\n callBack(json);\n }\n };\n xhr.send(JSON.stringify(data));\n }\n\n static httpGet(url,callBack){\n var urlData = \"http://api.sparkus.cn\" + url;\n console.log(urlData);\n let xhr = new XMLHttpRequest();\n xhr.open('GET', urlData);\n xhr.setRequestHeader('Content-Type', 'text/plain');\n \n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4 && xhr.status == 200) {\n var data = xhr.responseText;\n if(data){\n var json = JSON.parse(data);\n console.info('http success:' + json);\n callBack(json);\n }\n else callBack(data);\n }\n else{\n console.info('http fail:' + url);\n callBack(null);\n }\n };\n xhr.send();\n }\n}\n\nfunction responseHandler(response: { data: any }) {\n return response.data\n}\n// 响应拦截器\n// Rq.interceptors.response.use(responseHandler)\nconst config = {\n gameId: \"100009\",\n secretKey: \"CMNhOzBA\",\n EK:\"hui231%1\"\n};\n\ninterface CrypotoType {\n encryptByDES: any\n decryptByDES: any\n hmacSha256: any\n}\n \nclass Crypoto implements CrypotoType {\n // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致\n private keyHex = this.getHetKey()\n \n private getHetKey() {\n return CryptoJS.enc.Utf8.parse(config.EK);\n }\n\n /** DES加密 */\n encryptByDES(message: string, secret?: string) {\n if(!message) {\n return message\n }\n const key = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\n const encrypted = CryptoJS.DES.encrypt(message, key, {\n mode: CryptoJS.mode.ECB,\n padding: CryptoJS.pad.Pkcs7\n });\n return encrypted.toString()\n }\n\n /** DES解密 */\n decryptByDES(message: string, secret?: string) {\n const key = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\n\n const decrypted = CryptoJS.DES.decrypt({\n ciphertext: CryptoJS.enc.Base64.parse(message)\n }, key, {\n mode: CryptoJS.mode.ECB,\n padding: CryptoJS.pad.Pkcs7\n })\n\n return decrypted.toString(CryptoJS.enc.Utf8)\n }\n\n /** hmacSHA256加密 */\n hmacSha256(message: string, secret?: string) {\n const keyHex = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\n \n const hash = CryptoJS.HmacSHA256(message, keyHex);\n return hash.toString()\n }\n\n /** hmacSHA256验证 */\n verifyHmacSha256(message: string, signature: string) {\n const hash = CryptoJS.HmacSHA256(message, this.keyHex);\n return hash.toString() === signature\n }\n \n /** CBC加密 */\n encryptCBC(word: string) {\n if (!word) {\n return word;\n }\n const srcs = CryptoJS.enc.Utf8.parse(word);\n const encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, {\n iv: this.keyHex,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.ZeroPadding\n });\n return encrypted.toString(); \n }\n \n /** CBC解密 */\n decryptCBC(word: string) {\n if (!word) {\n return word;\n }\n const encryptedHexStr = CryptoJS.enc.Hex.parse(word);\n const srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);\n const decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, {\n iv: this.keyHex,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.ZeroPadding\n });\n const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);\n return decryptedStr.toString();\n }\n}\nconst fxCry = new Crypoto();\n\nfunction isEmpty(data) {\n return data === \"\" || data === null || data === undefined || data.length === 0 || JSON.stringify(data) == \"{}\"\n}\n\nfunction getQueryString(obj) {\n // 首先对对象的键进行排序并过滤空值\n const sortedKeys = Object.keys(obj).sort();\n const sortedObj = {};\n for (let i = 0; i < sortedKeys.length; i++) {\n if (isEmpty(obj[sortedKeys[i]])) {\n continue;\n }\n sortedObj[sortedKeys[i]] = obj[sortedKeys[i]];\n }\n \n // 然后将排序后的对象转换为查询字符串\n const params = [];\n for (const key in sortedObj) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(sortedObj[key])}`);\n }\n return params.join('&');\n}\n\n\n/**\n * 组装签名字符串\n * @param string url: 请求地址 \n * @param string postStr: post参数的a=1&b=2 \n * @returns \n */\n\nfunction genSignStr(url: string, postStr: string): string {\n let lessUrl = url.replace('?', '')\n lessUrl = lessUrl + \"&\" + postStr\n return encodeURIComponent(fxCry.hmacSha256(lessUrl))\n}\n// 对参数进行统一urlencode\nfunction urlencode(url: string): string {\n const [baseUrl, queryString] = url.split(\"?\", 2);\n const params = new URLSearchParams(queryString);\n return `${baseUrl}?${params.toString()}`;\n}\n\n/**\n * \n * @param url {string} 接口地址\n * @param params {object} 需要加密的参数对象\n */\nfunction apiSign(url: string, params = {}) {\n\n let convertUrl = url.trim()\n if (convertUrl.indexOf('?') === -1) {\n convertUrl += '?'\n }\n \n // 传入参数转换拼接字符串\n let postStr = getQueryString(params)\n \n const signedStr = genSignStr(convertUrl, postStr)\n const encryptStr = `sign=${signedStr}`\n\n let encryptSignStr = fxCry.encryptByDES(encryptStr, config.secretKey)\n encryptSignStr = encodeURIComponent(encryptSignStr)\n\n return `${urlencode(convertUrl)}&_p=${encryptSignStr}`\n}\n\n"]} \ No newline at end of file